【问题标题】:SQL Queries tuning into CRMSQL 查询调整到 CRM
【发布时间】:2016-08-03 14:12:34
【问题描述】:

我对 MS Dynamics CRM 和 SQL 有疑问。

我们有 CRM 2015 内部部署。我们确实在 Windows 应用程序日志中收到很多警告消息,表明此类查询超出了阈值。最终,这些警告会导致工作流/插件失败的错误。

我们询问了 MS,他们建议使用 SQL Server Tuning Advsior 和 Profiler 来优化这些查询,当我们运行 SQL Server Tuning Advsior 和 Profiler 时,我们得到的结果是,通过应用以下这些查询可以提高 54% 或 65%变化。其中大部分是索引。

我的问题是如何在运行/实时 CRM 应用程序中创建/修改/应用这些建议?

任何指导都会很有帮助。

谢谢。

【问题讨论】:

    标签: sql sql-server tsql dynamics-crm microsoft-dynamics


    【解决方案1】:

    创建索引是一项昂贵的操作,因为它必须为现有记录构建索引。

    如果您可以在晚上进行,并且可以承受一些停机时间,请选择该选项。如果您有 SQL Server 集群/高可用性解决方案,最好为每个节点单独执行,以避免停机。

    【讨论】:

    • 感谢 Jordi,但即使在创建索引之后,我们如何让 CRM 知道它必须根据索引执行插入、更新、选择操作?因为我正在谈论的我们收到警告的查询就像用户在 CRM 主页中搜索“Smith”,而这个“Smith”可以在客户、员工、用户等中。我们收到警告消息,这需要 203 秒超过了阈值,但是当我们直接在 SQL Server 中运行该查询时,它会在 2 或 3 秒内出现。
    • 嗨@user2040021,索引总是用于改进查询,但它会对插入和更新产生负面影响,因为它不仅要插入记录,还要维护索引树。您将无法做到这一点,它基本上是 SQL Server 根据现有索引和查询本身决定最佳执行计划。
    • 您可能想尝试执行查询执行计划或估计的查询执行计划,对于慢速查询之一,SQL Server 将建议您在需要时创建任何索引。
    • 感谢 Jordi,您的回复,但您在上一个问题之上是正确的,一旦我们创建索引,插入或更新记录将需要更多时间。现在我们在实现索引后收到查询执行时间超过 SELECT 查询阈值的警告,我猜我们将开始收到 Select 和 Insert 语句的警告消息!
    • 没问题。除非您有大量数据/事务,否则插入应该没问题。您最好的选择是查询执行计划,它将为您提供性能改进的大致数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2012-10-27
    • 2013-02-06
    • 1970-01-01
    相关资源
    最近更新 更多