请让我看看如何减少查询以减少执行时间。
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]
我该如何进行优化。请分享其他选择
答案 0 :(得分:1)
首先请您的DBA添加,刷新或重建索引,以确保您的数据库运行得尽可能干净,一个好的索引可能需要5分钟到1秒的时间来进行查询。
如果您要管理自己的数据库,请查看articles online来帮助优化查询。
有很多因素包括索引之外的服务器,RAM等的功能,因此(要求双关语)更可能是要求更多功率/内存的情况。
答案 1 :(得分:1)
首先,请确保您已创建索引:
create index ix1 on qbpcubetmp (qbq_codesession, qbq_valaxect1, qbq_valaxect2)