数据库环境:SQL SERVER 2005
今天看到一条SQL,写得不是很复杂,返回7000多条数据,却执行了15s。SQL文本及各表的数据量如下:
SELECT acinv_07.id_item , SUM(acinv_07.dec_endqty) dec_endqty FROM acinv_07 WHERE acinv_07.fiscal_year * 100 + acinv_07.fiscal_period = ( SELECT DISTINCT ctlm1101.fiscal_year * 100 + ctlm1101.fiscal_period FROM ctlm1101 WHERE flag_curr = 'Y' AND id_oprcode = 'acinv' AND acinv_07.id_wh = ctlm1101.id_table ) GROUP BY acinv_07.id_item ---------------------------------------- SELECT COUNT(*) FROM ctlm1101 WHERE flag_curr = 'Y' AND id_oprcode = 'acinv'--26 SELECT COUNT(*) FROM acinv_07--1347176