Heim >Datenbank >MySQL-Tutorial >Warum ist meine SQL-Abfrage in SSMS schnell, in meiner C#-Anwendung jedoch langsam?
Problem:
Eine Abfrage, die Daten schnell in SQL Server zurückgibt Management Studio (SSMS) nimmt viel Zeit in Anspruch, wenn es von C# aus ausgeführt wird. Anwendung.
Code:
Der C#-Code verwendet einen SqlDataAdapter und seine Fill-Methode, um die Abfrage auszuführen.
using (var conn = new SqlConnection(...)) using (var ada = new SqlDataAdapter(...)) { ada.Fill(Logs); }
Die SSMS-Abfrage ist identisch mit der im ausgeführten Anwendung.
Ursache:
Die Diskrepanz in der Ausführungszeit wird durch einen Unterschied in der Art und Weise verursacht, wie Parameter in der Anwendung und im SSMS behandelt werden. In der Anwendung wird die AddWithValue-Methode verwendet, um einen Parameter vom Typ NVARCHAR hinzuzufügen, während in SSMS der Parameter als VARCHAR deklariert wird.
Lösung:
Auflösen Beheben Sie dieses Problem entweder:
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
where client_id = cast(@clientID as varchar(200))
Die erste Lösung wird bevorzugt, da sie auch eine potenzielle Cache-Verschmutzung angeht Problem.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWarum ist meine SQL-Abfrage in SSMS schnell, in meiner C#-Anwendung jedoch langsam?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!