【问题标题】:this query taking long time to execute in sql server manegment studio 2012此查询需要很长时间才能在 sql server management studio 2012 中执行
【发布时间】:2017-12-08 15:52:35
【问题描述】:
SELECT s.option_code,s.seasonal_template_id,s.T900,s.T901,s.creator_id,s.creator_date,s.revisor_id,s.revisor_date,s.costing_sr_no,s.[T902],s.[T903]
FROM   [dbo].[tna870_seasonal_bulk_option_code_details_vendor_temp] s
   INNER JOIN mst703_master_field_values S5 
   ON S5.field_value_id = s.T900
      AND S5.field_id = (select s1.field_id from mst703_master_field s1 
                         where s1.field_code='t900')

WHERE s.seasonal_template_id = 35

AND ( s.option_code+CAST(s.seasonal_template_id AS VARCHAR(20))+s.costing_sr_no 
  NOT IN (SELECT DISTINCT s2.option_code+CAST(s2.seasonal_template_id AS VARCHAR(20))+s2.costing_sr_no 
          FROM tna870_seasonal_bulk_option_code_details_vendor s2
          WHERE s2.seasonal_template_id = 35) )

【问题讨论】:

  • 您在这些表上设置了索引吗?
  • 是的,这个表有 mst703_master_field_values 索引设置
  • “长时间”是什么意思?相比什么?这些表有多少数据?您是本地连接还是远程连接?
  • 在上面放一些 Windex。如果这不起作用,请尝试牺牲一只山羊。如果即使这样也不起作用,也许你应该看看查询计划。

标签: sql sql-server tsql query-performance


【解决方案1】:

你可以试试这个

SELECT
s.option_code,
s.seasonal_template_id,
s.T900,
s.T901,
s.creator_id,
s.creator_date,
s.revisor_id,
s.revisor_date,
s.costing_sr_no,
s.[T902],
s.[T903]
FROM
(
    SELECT
    *
    FROM [dbo].[tna870_seasonal_bulk_option_code_details_vendor_temp] s
    WHERE s.seasonal_template_id = 35
    AND NOT EXISTS(
                   SELECT 1 
                   FROM  tna870_seasonal_bulk_option_code_details_vendor s2 
                   WHERE s2.seasonal_template_id = s.seasonal_template_id
                   AND s2.option_code+CAST(s2.seasonal_template_id AS VARCHAR(20))+s2.costing_sr_no = s.option_code+CAST(s.seasonal_template_id AS VARCHAR(20))+s.costing_sr_no
                  )
) s
INNER JOIN mst703_master_field_values S5 
   ON S5.field_value_id = s.T900
      AND S5.field_id = (select s1.field_id from mst703_master_field s1 
                         where s1.field_code='t900')

【讨论】:

  • 非常感谢 Tien Nguyen 的回复,现在效果更好了
  • 对你有帮助,别忘了奖励。
猜你喜欢
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2021-12-25
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多