SELECT DID,PID,STATUS,ATTR,QZH,JH,ZRZ,WENHAO,TITLE,RQ,YS,BGQX,BMDZ,SSBM,MJ,LM1,ND,BZ FROM D_P_FILE22_13 WHERE STATUS!= '1' AND UPPER(QZH) LIKE '%13%' AND UPPER(LM1) LIKE '%Y%' AND ((USRROLE(CREATOR) = 2 AND ATTR IN(0, 4)) OR (USRROLE(CREATOR) = 5 AND ATTR IN(2, 4))) ORDER BY LM1,ND,WJLX ASC,intercept(WENHAO) ASC
真的好慢啊,要是优化该怎么优化呢
真的好慢啊,要是优化该怎么优化呢
where后面的条件可以根据表中数据的情况进行顺序的调整也可考虑一些子查询
2.如果要用到like这样的模糊匹配,可以根据需要尽可能改成 like 'rr%' 这种形式
....
SELECT DID,
PID,
STATUS,
ATTR,
QZH,
JH,
ZRZ,
WENHAO,
TITLE,
RQ,
YS,
BGQX,
BMDZ,
SSBM,
MJ,
LM1,
ND,
BZ
FROM D_P_FILE22_13
WHERE STATUS != '1'
AND QZH LIKE '%13%'
AND UPPER(LM1) LIKE '%Y%'
AND ((USRROLE(CREATOR) = 2 AND ATTR IN (0, 4)) OR
(USRROLE(CREATOR) = 5 AND ATTR IN (2, 4)))
ORDER BY LM1, ND, WJLX , intercept(WENHAO) ASCQZH 字段不用UPPER函数,在这个字段上建索引,在ATTR 字段上建位图索引。试一下