SNIReadSync Ausführung zwischen 120 bis 500 ms für eine einfache Abfrage. Was ich suche?
-
05-07-2019 - |
Frage
Ich bin Ausführung eine einfache Abfrage gegen SQL Server 2005:
protected static void InitConnection(IDbCommand cmd) {
cmd.CommandText = "set transaction isolation level read uncommitted ";
cmd.ExecuteNonQuery();
}
Jedes Mal, wenn ich mit DotTrace Profil 3.1, behauptet sie, dass SNIReadSync Verfahren zwischen 100 nehmen -. 500 ms
Was für Dinge brauche ich für zu suchen, um nach unten, diese Zeit zu bekommen?
Danke!
Lösung
Ich habe nicht getestet, aber würde ich fragen, ob Sie das gleiche Problem haben, wenn Sie eine Transaction mit den Optionen von IsolationLevel.ReadUncommitted verwendet. Sie müßten Ihren vollständigen Satz von Aufrufen verkapseln und das sollte die Notwendigkeit diese Aussage negieren. Ich weiß, dass diese Aussage nicht Ihre grundlegenden Anliegen ist, aber im Allgemeinen.
Eine andere Sache, die Sie tun können, ist eine DBConnectionScope-Klasse (oder einer vertrauenswürdigen Anbieters Klasse nutzen) und reduzieren auf die Gesamtzahl der Verbindungen, die geöffnet werden.
Andere Tipps
Stellen Sie sicher, dass das Verbindungsspooling aktiviert ist, oder Sie werden eine bedeutende Strafe jedes Mal erhalten eine Verbindung geöffnet wird. In der Verbindungszeichenfolge festgelegt Pooling = True, oder entfernen Sie alle Verweise auf Pooling. Ich glaube, die standardmäßig aktiviert ist.
Das das Problem behoben für mich. Hoffe, es hilft für Sie und andere.