关于oracle分区表的查询性能问题
时间:2011-11-09
来源:互联网
我有一张大表,有70多个字段,其中一个字段是recvtime时间字段(整型时间)。因为这张表的数据量很大,所以考虑使用partition进行分区,以recvtime字段,按月分区,语句如下:
CREATE TABLE t_a
(
id VARCHAR2 (16 BYTE) NOT NULL,
recvtime INTEGER NOT NULL,
ipaddress integer,
...
)
PARTITION BY RANGE (RECVTIME)
(PARTITION t_a_201109
VALUES LESS THAN (1317398400), --2011-10-01
PARTITION t_a_201110
VALUES LESS THAN (1320076800),
PARTITION t_a_201111
VALUES LESS THAN (1322668800),
PARTITION t_a_residual
VALUES LESS THAN (maxvalue))
/
其中recvtime字段创建了索引,id是主键。
问题如下:
目前该表中有500万数据,我想要查询10月10日到10月17日的数据。在没有创建分区的同样结构的表中,查询速度大概33秒(从500万数据中查询出6万),而在创建了分区的表中,查询速度却要需要50秒。
1.为什么会这样?创建分区的表的查询速度应该更快啊?
2.分区表的查询语句:
SELECT *
FROM t_a PARTITION (t_a_201110)
WHERE recvtime >= 1318176000
AND recvtime < 1318780800
AND ...(其他条件)
这个语句和不添加PARTITION (t_a_201110)的查询语句,在查询性能查询的执行过程上有区别吗?需要人为指定查询的分区吗?还是oracle能够自动根据recvtime的条件判断需要查询的分区呢?
ps:我是在工作机上做的测试(笔记本),xp系统,oracle11g
麻烦高手指点,谢谢
CREATE TABLE t_a
(
id VARCHAR2 (16 BYTE) NOT NULL,
recvtime INTEGER NOT NULL,
ipaddress integer,
...
)
PARTITION BY RANGE (RECVTIME)
(PARTITION t_a_201109
VALUES LESS THAN (1317398400), --2011-10-01
PARTITION t_a_201110
VALUES LESS THAN (1320076800),
PARTITION t_a_201111
VALUES LESS THAN (1322668800),
PARTITION t_a_residual
VALUES LESS THAN (maxvalue))
/
其中recvtime字段创建了索引,id是主键。
问题如下:
目前该表中有500万数据,我想要查询10月10日到10月17日的数据。在没有创建分区的同样结构的表中,查询速度大概33秒(从500万数据中查询出6万),而在创建了分区的表中,查询速度却要需要50秒。
1.为什么会这样?创建分区的表的查询速度应该更快啊?
2.分区表的查询语句:
SELECT *
FROM t_a PARTITION (t_a_201110)
WHERE recvtime >= 1318176000
AND recvtime < 1318780800
AND ...(其他条件)
这个语句和不添加PARTITION (t_a_201110)的查询语句,在查询性能查询的执行过程上有区别吗?需要人为指定查询的分区吗?还是oracle能够自动根据recvtime的条件判断需要查询的分区呢?
ps:我是在工作机上做的测试(笔记本),xp系统,oracle11g
麻烦高手指点,谢谢
作者: wwll123 发布时间: 2011-11-09
正常来讲分区对用户来讲应该是透明的。
可以试一下在查询时指定分区,再测试一下时间。
SQL code
可以试一下在查询时指定分区,再测试一下时间。
SQL code
SELECT * FROM 表名 PARTITION(分区名);
作者: LuiseRADL 发布时间: 2011-11-09
指定分区和不指定分区的速度差不多,但是都比没有分区的表慢。
如果查询的时间段刚好是一个月的话,即recvtime的范围是10月1日-10月30日,那么创建分区的表的查询速度就明显比没有分区的表的速度快,为什么??
如果查询的时间段刚好是一个月的话,即recvtime的范围是10月1日-10月30日,那么创建分区的表的查询速度就明显比没有分区的表的速度快,为什么??
作者: wwll123 发布时间: 2011-11-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28