В моем приложении работает приведенный ниже код, и его запуск занимает около 2–6 секунд, в среднем это около 3-4 секунд.Я знаю, что хранимая процедура выполняется менее чем за секунду, поэтому проблема должна быть с моим кодом VB.Net.Есть ли что-нибудь, что я могу сделать с этим, чтобы вообще улучшить производительность?
Пока я немного ускорил это, заставив мой сохраненный процесс возвращать часть HTML, готовую для вставки в каждый элемент, вместо того, чтобы иметь несколько IFоператоры внутри цикла, и я изменил цикл на время, а не для каждого, который помог немного.Я предполагаю, что некоторые проблемы с производительностью могут быть связаны с сервером, но я также хотел бы знать, есть ли в моем коде что-нибудь, что можно улучшить.
Спасибо
Private Sub dbGetOpenUnassignedTickets()
' Here we need to get the results of the query
Dim Events As New DataTable()
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "spGetUnassignedTickets"
cmd.Connection = conn
Using da As New SqlDataAdapter(cmd)
conn.Open()
da.Fill(Events)
conn.Close()
End Using
Dim TicketHTML As String = String.Empty
Dim counter As Integer = 0
While (counter < Events.Rows.Count - 1)
Dim strDragDrop As String
strDragDrop = "onmousedown='return DayPilotCalendar.dragStart(this.parentNode, 60*30, """ & Events.Rows(counter)("TicketID") & """, ""EE"");'"
'IF Current user <> looking at their own schedule AND not allowed to assign tickets
If (Session("UserID") <> ddlUser.SelectedValue And Session("AssignTickets") = 0) Then
strDragDrop = String.Empty
End If
TicketHTML = TicketHTML + Events.Rows(counter)("SeverityHTML")
TicketHTML = TicketHTML + "<table width='100%' " + strDragDrop + ">"
TicketHTML = TicketHTML + Events.Rows(counter)("TypeHTML")
TicketHTML = TicketHTML + Events.Rows(counter)("ProductHTML")
TicketHTML = TicketHTML + "<tr>"
TicketHTML = TicketHTML + "<td colspan='2'><b>Description</b> <br />" + Events.Rows(counter)("DescriptionHTML") + "</td>"
TicketHTML = TicketHTML + "</tr>"
TicketHTML = TicketHTML + "<tr>"
TicketHTML = TicketHTML + "<td>"
TicketHTML = TicketHTML + "<b>Logged Date:</b>"
TicketHTML = TicketHTML + "</td>"
TicketHTML = TicketHTML + "<td align='left'>"
TicketHTML = TicketHTML + Events.Rows(counter)("LogDate")
TicketHTML = TicketHTML + "</td>"
TicketHTML = TicketHTML + "</tr>"
TicketHTML = TicketHTML + "</table>"
TicketHTML = TicketHTML + "</div>"
counter = counter + 1
End While
' And now update the inner HTML of the thing we are putting the tickets into
divTickets.InnerHtml = TicketHTML
End Sub