У меня небольшие проблемы с производительностью параметризованного оператора SQL. Таблица, с которой я работаю, содержит ~ 150 000 записей, каждая из которых имеет ~ 30 столбцов.
Этот оператор выполняется за 3,5 секунды.
Dim selectstring As String
selectstring = "SELECT * FROM LineInfo WHERE jobNum=@jobnum and revision_number=@revnum AND lineNum=@linenum;"
Dim selectCommand As New SqlClient.SqlCommand(selectstring, Singleton.DbConnection)
selectCommand.Parameters.Add("@jobnum", "testing1")
selectCommand.Parameters.Add("@revnum", "0")
selectCommand.Parameters.Add("@linenum", 13)
Dim da As New SqlClient.SqlDataAdapter(selectCommand)
Dim ds As New DataSet
Try
da.Fill(ds)
MsgBox("Done.")
ds.Dispose()
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
da.Dispose()
Этот оператор выбора выполняется за 0,0015 секунды.
Dim selectstring As String
selectstring = "SELECT * FROM LineInfo WHERE jobNum='testing1' and revision_number=0 AND lineNum=13;"
Dim selectCommand As New SqlClient.SqlCommand(selectstring, Singleton.DbConnection)
Dim ds As New DataTable
Dim a As New SqlClient.SqlDataAdapter(selectCommand)
Try
a.Fill(ds)
MsgBox("Done.")
ds.Dispose()
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
a.Dispose()
Я читал здесь, на форуме, о сниффинге параметров, но, похоже, это относится к хранимым процедурам Я не совсем уверен, куда идти отсюда, поэтому я решил попробовать всех вас здесь при переполнении стека. Кто-нибудь знает, что может быть причиной этой проблемы?