这是我的问题,
我有一个包含超过100万条记录的表,我使用这些记录使用水晶报告生成一些报告,但是当选择大量记录时,有时会出现超时错误或有时计算机卡住,
我已经使用了索引,并且正在使用存储过程检索数据。
有几个表与主表(有 100 万条记录)连接,并且数据将在报告中分组。
所以我问我们能否使用 MSSQL CLR 通过压缩或转换为轻对象来从数据库获取这些数据,如果有人有想法,我们将不胜感激..
谢谢
您的帖子中有 2 个单独的问题不太可能通过 CLR 解决方案解决:
没有关于超时实际发生在何处的详细信息(在执行选择时在 RDBMS 上、在检索数据时在客户端上、在实际构建报告时在报表引擎中),因此我认为超时发生在 RDBMS 上。
构建 CLR 库不会缩短收集数据所需的时间。
解决方案是索引(就像您已经做的那样)和查询计划分析以识别瓶颈和问题。
这看起来像是一个与数据量相关的问题,使机器陷入困境,而您无能为力。
服务器上的 CLR 库不会减少传递给客户端的数据量,恕我直言,只会减少数据量。使情况变得更糟(客户端将收到压缩数据来解压缩:对于已经超载的机器来说这是一项额外的繁重任务)。
您最好的选择是增加内存量,购买更好的CPU(更高的速度和/或更多的内核),运行计划的报告,而不是以交互方式运行。