您好我有一个SQL查询,我正在尝试优化.此查询在0.3秒内完成,但我需要为大量不同的storeId运行相同的查询 – 无论如何都要优化此查询以使其更快,或者更改它以便它立即获取所有storeIds.
我总是可以在C#中创建一个新命令,该命令与命令连接,使其成为大量不同查询的联合.
select /*+ PUSH_SUBQ */ * from mytable r where r.s in (1,7) and r.d in (1,75) and r.storeid = 1162 and r.period = 20110528 and r.pid in (select /*+ no_unnest qb_name(subq1) */ productid from otherTable where itmid=9999)
我已经尝试过类似的东西,但这需要永远.
select /*+ PUSH_SUBQ */ * from mytable r where r.s in (1,7) and r.d in (1,75) and r.storeid in (1162,1223,1231,51231,231,...) and r.period = 20110528 and r.pid in (select /*+ no_unnest qb_name(subq1) */ productid from otherTable where itmid=9999)
MyTable有这样的索引:
pid是NON-UNIQUE,PARTITIONED,NO JOIN_INDEX
所有其他列都是UNIQUE,NO JOIN_INDEX
解决方法
尝试在查询上运行Oracle EXPLAIN PLAN.它应突出问题区域,并可能有助于缩小查询本身或要查询的表中的瓶颈.
使用EXPLAIN PLAN:
http://download.oracle.com/docs/cd/B10500_01/server.920/a96533/ex_plan.htm
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。