我们正在开发一个.net桌面应用程序。在GUI上,有许多选项卡和面板。图形选项卡,图像选项卡,结果网格选项卡等。任务是获取大约50,000条记录并能够获取其不同的视图。例如,可以有两列图形,可以通过网格中的结果,并可以查看记录的图像。
应用程序已开发但其性能太差。我们试图将其目标锁定在 50,000 记录上,但其响应会在大约5000条记录上得到响应。
事实:
1-查询很复杂,包括连接数。在avg 10到12表加入。有时子查询表作为连接。返回结果大约需要8到10秒。 如何在这个级别上实现绩效。 - 正确使用索引。
可以在上下文中使用SSIS(Sql Server Integration Services)帮助吗?
2-图表支持的数据量非常少,并开始在大约4000条记录上获得最佳数据。可以做些什么来提高图表的性能?
涉及图表时,不能使用Pagging。
答案 0 :(得分:1)
请发布您的架构和示例查询,以便对其进行改进。
至于图表性能,这里有一些一般的性能提示(假设是WinForms):
图表对象是否有.BeginUpdate()
或.BeginDataUpdate()
以及相应的.EndUpdate()
/ .EndDataUpdate()
方法?如果有那些那么你应该使用它。这同样适用于GridControl。
您是将这些项目逐个添加到图表/网格(或其数据源)中,还是调用.AddRange()
或设置data source
/ data bindings
。如果你要逐个添加项目,那么它会经常重复翻译列表,这是.NET 1.1 ListView
控件的常见问题,因为下面的项目存储在一个数组中,每个.Add(..)
调用都会重新创建数组,因此很快就会O(n^2)
添加项目。
您使用的是什么图形和网格控件?