Ich verwende derzeit Microsoft Enterprise Library Data Access 5.0, um eine gespeicherte Prozedur auszuführen.SQL-Skript benötigt lange Zeit
Database myDatabase = DatabaseFactory.CreateDatabase();
using (DbCommand command = myDatabase.GetStoredProcCommand("myStoredProc"))
{
//Add parameters here
using (IDataReader dataReader = myDatabase.ExecuteReader(command))
{
while (dataReader.Read())
{
}
}
}
Alles funktioniert, aber es dauert eine lange Zeit zu laufen. Wenn ich SQL Profiler aktiviere, kann ich sehen, dass die gespeicherte Prozedur etwa 50 Sekunden benötigt, um ausgeführt zu werden. Wenn ich jedoch dieselben Skripte aus dem Profiler herausbringe und sie in SQL Management Studio ausführe, dauert es nur etwa 480 Millisekunden, um alle Zeilen zurückzugeben.
Ist jemand auf dieses Problem gestoßen? Warum gibt es einen großen Unterschied?
ändert sich das, wenn Sie die while-Schleife entfernen? – JeremyWeir
Ich muss das versuchen und sehen. – madatanic
Diese Frage wird mehrmals pro Woche im MSDN SQL-Forum gestellt. es muss auch ein Duplikat sein. Ich vergesse die genaue Ursache, aber es ist eine Standardeinstellung, die optimiert werden muss. –