是否可以优化此查询?
SELECT
tr.transferfrom, tr.transferto, br.id as 'BR_ID',tr.refno,
br.name as 'BR_NAME', br.code as 'BRANCH_CODE', tr.docno, tr.transdate,
stk.stockno,stk.salescat,tr.qty, tr.sprice,tr.qty*tr.sprice as 'GROSS_SALES'
FROM
TRANSFER tr
JOIN
branch br on tr.branchid = br.id
JOIN
stocks stk on tr.stockid=stk.id
WHERE
RIGHT(tr.refno,7) = 'ST00576' AND LEFT(tr.refno,2) = 89
AND stk.stockno = 'NS4370 CR - L';
答案 0 :(得分:1)
tr.refno
创建索引,并将LEFT(tr.refno,2) = 89
替换为tr.refno LIKE '89%'
stk.id + stk.stockno
br.id
tr.refno
字符存储在单独的字段中以避免RIGHT(tr.refno,7) = 'ST00576'
(不是确定sql server是否支持反向索引)