表day_subtotal有两个索引day_number,user_id,def_id
使用查询select * from day_subtotal where user_id=**** and def_id=**速度很快。
但加上day_number字段的判断,就速度非常的慢。
请问这是怎么回事,该怎么调优呢?
谢谢。
使用查询select * from day_subtotal where user_id=**** and def_id=**速度很快。
但加上day_number字段的判断,就速度非常的慢。
请问这是怎么回事,该怎么调优呢?
谢谢。
解决方案 »
- java传递oracle数组:Non supported character set: oracle-character-set-867
- msdaora OraOLEDB
- sql查询
- 根据已有一组数据去表里统计
- 改变默认表空间后,数据是全部转到新的默认表空间吗??
- 请问各位大侠哪里有下oracle 9.2.0.1 的啊!~!~!
- 弱弱的问一下。oracle中可以创建大小写混合的表名和列名吗?谢谢!!
- OMS 的简单问题 大家帮帮初学者
- oracle 9i 安装后有多大
- 在中文字符集的数据库中,显示时间为 AM 或PM的日期格(不是中文的 上午或下午)式怎么写。
- 在导出整个数据库时,为什么要输入主机身份证明?
- ORA-12154: TNS:could not resolve the connect identifier specified
你可以把day_number放在前面,如select * from day_subtotal where day_number=xxx and user_id=**** and def_id=**
这样速度应该没什么影响。
另外还要注意day_number这个字段的类型,如果day_number是varchar型的
你却这样写
select * from day_subtotal where day_number=123;
这样的话将会很慢。
正确写法是要类型匹配
select * from day_subtotal where day_number='123'
最后发现了day_number字段为按日期的分区。当同时使用分区与多个索引进行查询时就会先通过分区查询。