我如何使我的查询优化以减少执行时间

时间:2019-05-07 13:12:26

标签: sql sql-server query-optimization

请让我看看如何减少查询以减少执行时间。

SELECT 
   CASE
      WHEN MONTH(QBQ_DATEJOUR) = 1  AND QBQ_VALAXECT1 = [AXE1]  THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV1]))/100) 
      WHEN MONTH(QBQ_DATEJOUR) = 2  AND QBQ_VALAXECT2 = [AXE2] THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV2]))/100)
      WHEN MONTH(QBQ_DATEJOUR) = 3 AND [EV3] <> 0  THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV3]))/100) 
      WHEN MONTH(QBQ_DATEJOUR) = 4 THEN
         (QBQ_CAHISTO+(QBQ_CAHISTO*([EV4]))/100) 
      ELSE QBQ_CAHISTO
   END  AS NVPREVU,
   MONTH(QBQ_DATEJOUR) AS MOISP
FROM QBPCUBETMP
WHERE QBQ_CODESESSION = [SESSION]
AND QBQ_VALAXECT1 = [AXE1]
AND QBQ_VALAXECT2 = [AXE2]

我该如何进行优化。请分享其他选择

2 个答案:

答案 0 :(得分:1)

首先请您的DBA添加,刷新或重建索引,以确保您的数据库运行得尽可能干净,一个好的索引可能需要5分钟到1秒的时间来进行查询。

如果您要管理自己的数据库,请查看articles online来帮助优化查询。

有很多因素包括索引之外的服务器,RAM等的功能,因此(要求双关语)更可能是要求更多功率/内存的情况。

答案 1 :(得分:1)

首先,请确保您已创建索引:

create index ix1 on qbpcubetmp (qbq_codesession, qbq_valaxect1, qbq_valaxect2)