我们在内部拥有CRM NAV。我们有很多性能问题。我们每天会收到40-50条关于在应用程序日志中查询执行时间的消息。
我们在应用程序日志中收到的警告消息,如
警告1: 查询执行时间为46.3秒,超过了30秒的阈值。线程:148;数据库:MSCRM; 并查询自己。
但是当我们运行该查询时,它在SSMS中没有时间,或者可能是1或2秒。
为什么在从CRM运行查询和直接在SSMS上运行查询的时间方面存在很大差异。 ?
您是否认为我们应该重建或重组索引以提高性能?
感谢。 P上。
答案 0 :(得分:0)
在CRM系统中运行报告与从SSMS运行之间最可能的区别是执行报告的用户。大多数报告都是针对过滤后的视图完成的,其中包括许多开销强制安全性。使用系统管理员权限执行查询可显着减少针对筛选视图的查询开销。您是使用系统管理员从SSMS执行还是在CRM中执行非管理员?
请注意,虽然不受支持,但针对常规视图编写报表查询的工作完全正常并且速度更快。当然,您将失去过滤视图中包含的功能,包括安全检查。
<强>索引:强> 是的,您应该确保定期索引CRM数据库,并且每天或每周对索引进行碎片整理甚至更为重要。
在CRM数据库上创建和解析索引是受支持的操作。 Microsoft建议重建碎片级别大于30%的索引,而重组碎片大于10%的索引应重新组织。
对生产索引进行碎片整理非常安全,但您应该在一夜之间运行操作,以尽量减少对系统性能的影响。