一个关于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
- 下一篇: 在一测试环境下的RAC出错解决