为了提高数据库的查询速度,我准备建立partition!
但是否必须要显式的写出所查询的partition名字才能获得最佳的速度
如:select * from TBL partition (p1);
而我想问的是如select * from TBL where ....
这样的没有指明partition名的sql在建立了partition速度是否会自然提高(不用
修改任何代码)
请赐教!
但是否必须要显式的写出所查询的partition名字才能获得最佳的速度
如:select * from TBL partition (p1);
而我想问的是如select * from TBL where ....
这样的没有指明partition名的sql在建立了partition速度是否会自然提高(不用
修改任何代码)
请赐教!
解决方案 »
- oracle exp 导出文件自动命名
- 请教 用clob 存储 汉字的问题。
- select t.part,s.part,t.plant,s.plant ,t.rowid from srm054 t,srm041 swhere t.part=s.part
- ***如何增加SQLPLUS缓冲区?***
- 请问这样的sql语句如何实现
- 哪位兄弟有Embarcadero SQL Tuner的中文资料啊!
- oracle 8i输入数据
- 有关Oracle的实时数据库
- 寻求帮助:我刚学Oracle想找一点关于Oracle的PDF格式的电子书
- Oracle 11G 安装时出现问题,请大神指点
- 有关UTL_FILE包读写文件的问题!一定要帮我呀!!!!!!
- 菜鸟急问!!
where partition_column >= {your midpoint value};
显式指定理论上简化oracle的语法分析,应该快。
只有一种情况下两者的返回结果是相同的:当满足条件的纪录存在而且只存在于被指定的那个partition中。举例如下:table: test (col1)
part1: col1 <10
records: 5,6,7,8,9,10
part2: col1 between <20
records: 11,12,13查询一:select * from test partition(part1) where col1 between 7 and 12;将返回纪录7,8,9,10
查询二:select * from test where col1 between 7 and 12;则会返回纪录7,8,9,10,11,12
其实查询一等价于:
select * from test partition(part1) where col1 between 7 and 12 and col1 <10;查询三:select * from test partition(part1) where col1 between 7 and 9;将返回纪录7,8,9
查询四:select * from test where col1 between 7 and 9;和查询三相同,也将返回纪录7,8,9
查询三和查询四相同是因为所有的纪录都在一个partition中所以脱离了查询的逻辑谈效率是没有意义的。