大家好,请教大家一个问题,待办任务列表加载缓慢。跟踪SQL执行语句,主要是以下语句执行缓慢,语句如下:
exec sp_executesql N'
SELECT count(1) FROM T_WF_ASSIGN
INNER JOIN T_WF_RECEIVER ON T_WF_ASSIGN.FASSIGNID = T_WF_RECEIVER.FASSIGNID
INNER JOIN T_WF_PROCINST ON T_WF_ASSIGN.FPROCINSTID = T_WF_PROCINST.FPROCINSTID
INNER JOIN T_WF_ACTINST ON T_WF_ASSIGN.FACTINSTID = T_WF_ACTINST.FACTINSTID
INNER JOIN T_WF_APPROVALASSIGN ON T_WF_ASSIGN.FASSIGNID = T_WF_APPROVALASSIGN.FASSIGNID
LEFT OUTER JOIN T_WF_APPROVALITEM ON (T_WF_APPROVALASSIGN.FAPPROVALASSIGNID = T_WF_APPROVALITEM.FAPPROVALASSIGNID AND
T_WF_RECEIVER.FRECEIVERID = T_WF_APPROVALITEM.FRECEIVERID)
WHERE ((((T_WF_ASSIGN.FSTATUS = ''0'' AND T_WF_ACTINST.FSTATUS = ''2'')
AND T_WF_PROCINST.FSTATUS = ''2'')
AND ((T_WF_APPROVALITEM.FAPPROVALITEMID IS NULL) OR T_WF_APPROVALITEM.FSTATUS = ''0''))
AND T_WF_RECEIVER.freceiverid = @FReceiverId)',N'@FReceiverId int',
@FReceiverId=145361
如果上述语句直接在Microsoft SQL Server Management Studio 上执行时间差不多是:1秒。
如果用户前台登录过程中,通过SQL Server Profiler 跟踪,Duration 值:43703834,如果转化成秒应该是43703834/1000000.0 = 43.703834000秒。
执行上述语句时SQL SERVER 都没有阻塞等异常情况。同一语句在两个不同客户端执行的效率不一样,这是为什么?还是我计算时间的方法或者跟踪的方法不正确?
推荐阅读