在给客户实施ERP的时候,经常遇到客户的请购单审批时,特别慢,一个阶段要转个40、50秒左右,3个阶段就差不多要3分钟,效率很低。
检查方法如下:
1、数据库跟踪语句,找出执行时间较久的语句,结果如下:
2、由上图可以看出,执行该语句的时候,时间差不多是45秒(Drration单位是ms),将此段语句复制出来,进行分析;
3、WFWdd(审批)与WFWddA表数据较多,尤其是WFWddA表有20几万的数据,这是导致查询过慢的主要原因;
解决方案:
给这两张表创建索引,加快查询效率,现提供创建索引的语句,语句如下:
1 CREATE NONCLUSTERED INDEX [IX_DraftKey] ON [dbo].[WFWdd] 2 ( 3 [DraftKey] ASC 4 ) 5 CREATE NONCLUSTERED INDEX [IX_WorkflowInstanceId] ON [dbo].[WFWddA] 6 ( 7 [WorkflowInstanceId] ASC 8 )
1、遇到类似的审批过慢,可参考;
2、合理利用sql语句跟踪工具,找出问题根源。
工具使用说明参见:SQL Server Profiler查询跟踪的简单使用
索引介绍请参见:索引介绍
时间: 2024-10-12 11:44:29