由于兑现了Crystal报表查询,SQL数据库服务器几乎崩溃

2020-09-16 22:31发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好! 我有一个快速的问题。 我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好! 我有一个快速的问题。 我最近购买了Crystal Reports,并创建了一些报告并更新了其他报告。 使用几天后,该软件的运行速度非常慢,我们的IT公司联系我,我们的数据库已经在兑现查询,并且几乎内存不足。 由于它几乎崩溃了,他们能够解决此问题的唯一方法是重启服务器。 在此之后,它可以正常工作。 我想知道是否有办法防止Crystal Reports兑现到数据库,因此我们不必每三天左右重置一次数据库服务器。

3条回答
暮风yp
2020-09-16 23:01

你好

对我来说,现在还不是100%清楚这里是什么问题。 有多个嫌疑人:

  • Crystal Reports(CR)会生成大量查询,并在SQL Server上运行它们,因此计划缓存中将填充所有这些查询。 计划缓存可以增长到SQL Server内存的三分之一,您可以使用数据库服务器上的命令

    DBCC FREEPROCCACHE
    GO

    清除它,以释放内存 。
  • CR仅在数据库中运行少数几个但非常昂贵的语句,并从DB中读取大量数据。 这会用完这些报表的数据,并用它们填充SQL Server上的缓冲区缓存。 DB上其他系统所需的数据从缓存中逐出,必须从磁盘重新读取。 这会减慢其他应用程序的速度。 缓冲区高速缓存受SQL Server中最小和最大服务器内存设置的限制。
    解决此类问题的最佳方法是对CR中的查询进行重新处理,以仅读取其真正需要的数据;如果仍然过多,则将CR指向第二个SQL Server,并复制一个 生产性数据不会影响生产工作。
    要清除完整的缓冲区高速缓存(以便更快地将其再次用于其他应用程序),可以运行

    DBCC DROPCLEANBUFFERS
    GO

    在数据库服务器上。

无法从SQL Server缓存计划和数据。 如果CR在服务器上增加了太多负载,则应将数据副本复制到另一台服务器上(拆分生产和报告负载)

最好的问候

Clas Hortien

一周热门 更多>