現在、Microsoft Enterprise Library Data Access 5.0 を使用してストアド プロシージャを実行しています。
Database myDatabase = DatabaseFactory.CreateDatabase();
using (DbCommand command = myDatabase.GetStoredProcCommand("myStoredProc"))
{
//Add parameters here
using (IDataReader dataReader = myDatabase.ExecuteReader(command))
{
while (dataReader.Read())
{
}
}
}
すべてが機能しますが、実行には時間がかかります。SQL プロファイラーを有効にすると、ストアド プロシージャの実行に約 50 秒かかることがわかります。ただし、プロファイラーから同じスクリプトを取得して SQL Management Studio 内で実行すると、すべての行を返すのに約 480 ミリ秒しかかかりません。
誰かがこの問題に遭遇しましたか? 大きな違いがあるのはなぜですか?