CRM 4.0中的SQL超时 - 导入自定义失败

时间:2011-03-29 20:15:36

标签: sql-server stored-procedures dynamics-crm

将自定义项导入CRM 4.0时,导入失败,并显示“一般SQL错误”消息。深入挖掘错误消息实际上是发生了超时。尝试创建新实体时会发生同样的错误。

我按照以下链接中的建议增加了超时,但无论如何都发生了超时 - 它只需要更长的时间。

增加超时时间

  

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ MSCRM \ OLEDBTimeout

     

默认情况下,此值不存在,如果不存在,则默认值为30秒。要更改它,请添加注册表值(类型为DWORD),并输入所需的值(以秒为单位)。然后,您必须回收CrmAppPool应用程序池才能使更改生效

     

https://community.dynamics.com/product/crm/crmtechnical/b/crmdavidjennaway/archive/2008/09/04/sql-timeouts-in-crm-generic-sql-error.aspx

SQL探查器显示一组与CRM中的元数据相关的插入和更新,然后调用存储过程

exec p_RecreateIndexes

这个电话显然是罪魁祸首,并且永远不会及时完成(现在已超过30分钟,尚未完成)。这是CRM的现有测试实例,并且被广泛使用并且填充了大量数据。创建新实体之前从未花费太多时间。为了以防万一,我已经从MS运行了asyncoperation清理脚本。它没有任何明显的效果。

有没有办法找到延迟此程序的原因,或者我可以尝试的其他解决方案?

3 个答案:

答案 0 :(得分:2)

尝试将导入拆分为块。例如,导入前20个实体,然后导入后20个实体,依此类推,直到导入所有实体为止。然后发布。然后返回并尝试同时导入整个自定义文件并重新发布。遵循这种方法确实是我们在特别顽固的环境中导入一些自定义文件的唯一方法。

答案 1 :(得分:0)

听起来重新索引操作需要一些时间 - 如果数据大小很大,碎片很高就会如预期的那样。它还取决于该存储过程的确切内容,以及您拥有的内核/ CPU数量以及允许使用的SQL Server数量。

该应用是否允许您推迟该操作?您可以通过Management Studio自行运行它 - 如果这不会破坏应用程序。

你可能会厚颜无耻,并重命名该程序,并将其替换为您自己的程序,然后重命名,然后运行。同样,它可能会破坏某些东西。

或者只是继续增加超时,直到你遇到这个问题为止。我在数据库上的一些重新索引作业通常需要数小时....

如果您有支持,请与供应商联系?

如果您通过Management Studio运行该查询,它将完成....这样做可以为您提供(暂时)进入超时设置所需的大致时间。

答案 2 :(得分:0)

我刚刚遇到了完全相同的问题而且我只导入了2个实体。

在我在跟踪文件中看到p_RecreateIndexes后,我在搜索p_RecreateIndexes时发现了你的问题。

我最终在SQL Server中运行exec p_RecreateIndexes。完成后 - 大约2分钟 - 我重新进行了实体导入,但它确实有效。