現在、ストアドプロシージャを実行するためにMicrosoft Enterprise Library Data Access 5.0を使用しています。SQLスクリプトの実行に時間がかかります
Database myDatabase = DatabaseFactory.CreateDatabase();
using (DbCommand command = myDatabase.GetStoredProcCommand("myStoredProc"))
{
//Add parameters here
using (IDataReader dataReader = myDatabase.ExecuteReader(command))
{
while (dataReader.Read())
{
}
}
}
すべて動作しますが、動作には時間がかかります。 SQLプロファイラをオンにすると、ストアドプロシージャの実行に約50秒かかることがわかります。しかし、Profilerから同じスクリプトを取り出してSQL Management Studioで実行すると、すべての行を返すのに約480ミリ秒かかります。
誰もこの問題に遭遇しましたか?なぜ大きな違いがありますか?
whileループを削除すると変更されますか? – JeremyWeir
私はそれを試してみる必要があります。 – madatanic
この質問は、週に数回MSDN SQLフォーラムで出ます。ここでも重複している必要があります。私は正確な原因を忘れていますが、それは調整が必要なデフォルト設定です。 –