繁体   English   中英

在SSIS包上插入语句花费的时间太长

[英]Insert statement takes too long on SSIS package

我是新来的。 我有以下代码,其中的内容和SSID包执行所需的时间过长。

该声明旨在寻找最佳律师(考虑了一些生产力和能力因素)并将其ID写到临时表中……但过长。

有什么建议么??? 我什至尝试过...禁用Trigers

ALTER TABLE TB_TEMPLawyer DISABLE TRIGGER ALL
ALTER TABLE TB_LAWYERS     DISABLE TRIGGER ALL
ALTER TABLE  TB_PCRelation  DISABLE TRIGGER ALL
ALTER TABLE  TB_CASES       DISABLE TRIGGER ALL
ALTER TABLE  TB_TEMPaccount  DISABLE TRIGGER ALL

INSERT INTO TB_TEMPLawyer
                      (LawyerAutoIDTEMP)
SELECT     TOP (1) TB_LAWYERS.LawyerAutoID
FROM         TB_PCRelation INNER JOIN
                      TB_CASES ON TB_PCRelation.PostalCode = TB_CASES.CustomerPostalCode INNER JOIN
                      TB_LAWYERS ON TB_PCRelation.PCLawyerID = TB_LAWYERS.LawyerID INNER JOIN
                      TB_TEMPaccount ON TB_CASES.Account = TB_TEMPaccount.TempAccount
WHERE     (TB_CASES.LASYstatus = '2') AND (TB_CASES.LawyerID = 'NONE') AND (TB_LAWYERS.Activity = 'ACTIVE') AND 
                      (TB_LAWYERS.Relation_Type = 'EXTERNAL') AND (TB_CASES.TotalMLUSBBexposure BETWEEN TB_LAWYERS.MINAmount AND 
                      TB_LAWYERS.MAXamount) AND (TB_LAWYERS.CaseLimitMONTHLY >= TB_LAWYERS.CaseLimitMONTHLYactual) AND 
                      (TB_LAWYERS.CaseLimitDAILY >= TB_LAWYERS.CaseLimitDAILYactual) AND (TB_LAWYERS.Productivity <> '0')
ORDER BY TB_LAWYERS.Productivity DESC




ALTER TABLE TB_TEMPLawyer ENABLE TRIGGER ALL 
ALTER TABLE TB_LAWYERS     ENABLE TRIGGER ALL
ALTER TABLE  TB_PCRelation  ENABLE TRIGGER ALL
ALTER TABLE  TB_CASES       ENABLE TRIGGER ALL
ALTER TABLE  TB_TEMPaccount  ENABLE TRIGGER ALL

首先,触发器与性能无关。 您只插入一行。

在这种插入中可能会遇到两个问题:

  1. 目标表可能由于某些原因而被锁定。 我怀疑这是问题所在。
  2. 查询需要很长时间。

在SSMS中运行查询。

从命名约定来看,我会对这种连接表示怀疑:

FROM TB_PCRelation INNER JOIN 
     TB_CASES
     ON TB_PCRelation.PostalCode = TB_CASES.CustomerPostalCode

对案件没有明显的限制。 您很可能在一个邮政编码中就有很多律师和很多案件。

但是,这仅仅是猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM