一个关于HINT中指定索引查询的问题
生活随笔
收集整理的這篇文章主要介紹了
一个关于HINT中指定索引查询的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有以下一段代碼:
insert into TMP_USR_card_QTY(User_Id,qty)
SELECT ?/*+ index(mt_cards idx_mt_card_crtdt) */
?????? user_id,COUNT(0) qty?????? ?
????? FROM MCARD.mt_cards c
????? where c.card_createtime between 1371571200?? and 1371657600
????? group by user_id
執行計劃如下:
而代碼:
SELECT ?
/*+ index(mt_cards idx_mt_card_crtdt) */
?????? user_id,COUNT(card_id) qty?????? ?
????? FROM MCARD.mt_cards
????? where card_createtime >= 1371571200 ?
????? group by user_id
的執行計劃是:
經反復分析,原因是在HINT 中,使用了表別名,經修改代碼如下后,得到了所要的結果。
insert into TMP_USR_card_QTY(User_Id,qty)
?????? SELECT ?
/*+ index(c idx_mt_card_crtdt) */
?????? user_id,COUNT(card_id) qty?????? ?
????? FROM MCARD.mt_cards? c
????? where c.card_createtime between 1371571200?? and 1371657600
????? group by user_id
總結
以上是生活随笔為你收集整理的一个关于HINT中指定索引查询的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用vm server 虚拟机上安装or
- 下一篇: orcle rac启动了,但数据库没有启