问题:我的公司目前有一个大约需要3秒钟才能运行的查询,但显示数据的表创建大约需要30秒才能完成。大部分都是简单的:
Dim MainTable as New Table
Dim TableR as New TableRow
Dim TableC as New TableCell
TableCell.Text = "Some data"
TableRow.Controls.Add(TableC)
MainTable.Controls.Add(TableR)
现在,在大约550条记录上,此操作的性能约为30秒。我尝试将过程改为使用Strings:
Builder.Append("<tr><td>Something</td></tr>")
但没有真正的改善。我的问题是关于努力提高绩效。
转发器实际上会更快吗?
答案 0 :(得分:2)
您确定知道瓶颈在哪里吗?您应该测量实际的循环执行,完成客户端请求所花费的时间以及客户端呈现页面所花费的时间。
除非你在循环中执行一个不同的,异常昂贵的操作,否则看起来很可能需要花费StringBuilder
循环才能进行550次迭代。
性能影响更可能是由于:
1)将数据从服务器发送到浏览器的时间过长。
2)客户需要很长时间才能真正呈现页面。
这两者通常都有相同的原因 - 您发送浏览器的HTML太大了。 (这也可以通过在ViewState
中保存大量内容来实现,这会增加您发送给客户端的数据量。)无论如何,您需要先进行这些测量以找出问题所在
答案 1 :(得分:1)
您是否尝试将数据绑定到gridview对象?
答案 2 :(得分:0)
我刚刚回答了另一个问题,即用户在尝试绑定到2k +记录时遇到类似问题。也许有一些指针可以帮助你提高速度: