tomorrower 发表于 2009-09-09 22:09

请教一句sql语句优化方法:

语句为:

SELECT "yd_ddxx"."lpmc",   
         CONVERT( integer, sum(yd_ddxx.lpgs) )
    FROM "yd_ddxx"
   WHERE "yd_ddxx"."ddbh" in (SELECT "yd_ddxx"."ddbh" FROM "yd_ddxx" GROUP BY "yd_ddxx"."ddbh" HAVING(count(*))> 1 )   
GROUP BY "yd_ddxx"."lpmc"   
;

执行速度很慢,执行计划为:
( Plan [ Total Cost Estimate: 40.54128 ]
( WorkTable
    ( HashGroupBy
      ( TableScan yd_ddxx[ EXISTS( SubQ 1 ) ] )
    )
)
)
( SubQ 1 [ Total Cost Estimate: 40.54128 ]
( Filter [ expr() >1 : 25% Guess ]
    ( HashGroupBy
      ( TableScan yd_ddxx[ yd_ddxx.ddbh = expr( yd_ddxx.ddbh ) : 5% Guess ] )
    )
)
)

我看不懂,表结构为:


yd_ddxx:ddbh,lpbh,lpmc,lpgs

tomorrower 发表于 2009-09-09 22:17

添加索引ddbh 字段后,发觉快了很多
页: [1]
查看完整版本: 请教一句sql语句优化方法: