Obecnie korzystam z Microsoft Enterprise Library Data Access 5.0, aby wykonać procedurę składowaną.Skrypt SQL trwa długo, aby uruchomić
Database myDatabase = DatabaseFactory.CreateDatabase();
using (DbCommand command = myDatabase.GetStoredProcCommand("myStoredProc"))
{
//Add parameters here
using (IDataReader dataReader = myDatabase.ExecuteReader(command))
{
while (dataReader.Read())
{
}
}
}
Wszystko działa, jednak uruchomienie zajmuje wiele czasu. Po włączeniu programu SQL Profiler widzę, że procedura przechowywana trwa około 50 sekund. Jeśli jednak weźmiemy te same skrypty z Profiler i uruchomimy je w SQL Management Studio, do zwrócenia wszystkich wierszy potrzeba tylko około 480 milisekund.
Czy ktoś napotkał ten problem? Dlaczego jest duża różnica?
zmienia się, jeśli usuniesz pętlę while? – JeremyWeir
Muszę spróbować i zobaczyć. – madatanic
To pytanie pojawia się kilka razy w tygodniu na forum MSDN SQL; to też musi być duplikat. Zapomniałem dokładnej przyczyny, ale jest to ustawienie domyślne, które należy poprawić. –