【发布时间】:2011-11-22 16:29:57
【问题描述】:
下面的代码在我的应用程序中运行,运行大约需要 2 - 6 秒,平均大约需要 3-4 秒。我知道存储过程在一秒钟内执行,所以问题一定出在我的 VB.Net 代码上。我能做些什么来提高性能吗?
到目前为止,我通过让存储的 proc 返回一些准备好插入每个元素的 HTML 而不是在循环中包含多个 IF 语句来稍微加快它的速度,并且我将循环更改为 While 而不是每个这有点帮助。我假设某些性能问题可能与服务器有关,但我也想知道我的代码中是否有任何可以改进的地方。
谢谢
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
【问题讨论】:
标签: asp.net vb.net performance .net-4.0