社区
Oracle 高级技术
帖子详情
在同一块磁盘上作分区表有意义么?
xyzhh
2006-07-05 02:50:40
如果把一张大表的数据分散到各个磁盘上做一个分区表是能增强它的i/o;
但是现在我们往往将几个磁盘做成一个raid,表已经分散到各个磁盘上了。从操作系统上来看,它是一整块磁盘,这个时候如果我们在上面将表做成分区表还有意义么?如果有,那么他将怎样提升哪一块儿的性能?
...全文
384
12
打赏
收藏
在同一块磁盘上作分区表有意义么?
如果把一张大表的数据分散到各个磁盘上做一个分区表是能增强它的i/o; 但是现在我们往往将几个磁盘做成一个raid,表已经分散到各个磁盘上了。从操作系统上来看,它是一整块磁盘,这个时候如果我们在上面将表做成分区表还有意义么?如果有,那么他将怎样提升哪一块儿的性能?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xyzhh
2006-07-17
打赏
举报
回复
怎样才算用上了分区?
vc555
2006-07-14
打赏
举报
回复
你的第一个执行计划怎么看不出用上了分区?
xyzhh
2006-07-14
打赏
举报
回复
我做的实验,好像大部分都是未分区的表快。难道分区仅仅只是维护方便么?
xyzhh
2006-07-13
打赏
举报
回复
顶!
xyzhh
2006-07-11
打赏
举报
回复
看一下我对两张表跟踪的例子:
dvd_list_new:一张普通的表
dvd_list_part:一张按月分区的表(索引未分区)
两张表数据都一样,都是使用insert into .. select * from ....,这样防止碎片。
执行
select count(*) from dvd_list_part where time>'20060601000000' and time <'20060631000000';
结果
COUNT(*)
----------
2149656
Elapsed: 00:00:01.11
Execution Plan
----------------------------------------------------------
Plan hash value: 3756034816
-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 15 | 7822 (2)| 00:01:34 |
| 1 | SORT AGGREGATE | | 1 | 15 | | |
|* 2 | INDEX FAST FULL SCAN| INDEX_TIME_PART | 2141K| 30M| 7822 (2)| 00:01:34 |
-----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("TIME"<'20060631000000' AND "TIME">'20060601000000')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
35238 consistent gets
0 physical reads
0 redo size
518 bytes sent via SQL*Net to client
468 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
执行
select count(*) from dvd_list_new where time>'20060601000000' and time <'20060631000000';
结果
COUNT(*)
----------
2149656
Elapsed: 00:00:00.82
Execution Plan
----------------------------------------------------------
Plan hash value: 2838380510
----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 15 | 5100 (2)| 00:01:02 |
| 1 | SORT AGGREGATE | | 1 | 15 | | |
|* 2 | INDEX FAST FULL SCAN| INDEX_TIME_NEW | 2126K| 30M| 5100 (2)| 00:01:02 |
----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("TIME">'20060601000000' AND "TIME"<'20060631000000')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
24143 consistent gets
0 physical reads
0 redo size
518 bytes sent via SQL*Net to client
468 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
可以看到分区表的逻辑读('consistent gets' + 'db block gets')比未分区的多得多。这样只能得出一个结论,就是分区后要慢。
为什么?
多壮志
2006-07-11
打赏
举报
回复
笨猫一只说的是没有错的.. r5通常是存储性能、数据安全和存储成本兼顾的存储解决方案..你无法指定分区放再哪个磁盘..因为这个方案不提供这个..
分区的本意就是在于可以缩小查询范围,,对没个范围的数据进行单独管理..这个就是分区的目的..
所以他们是可以提高效率的..
xyzhh
2006-07-11
打赏
举报
回复
那么分区该怎么考率呢?不要简单地告诉我“分区比较快,因为只在某个区查询”。我想知道他在什么情况下快,为什么会比索引快。从原理上考虑!
fjmingyang
2006-07-07
打赏
举报
回复
索引也是可以分区的
goldarcher2005
2006-07-07
打赏
举报
回复
分区和分磁盘是2件事,从2个角度考虑
xyzhh
2006-07-06
打赏
举报
回复
可是如果我们使用索引的话,也不是查询所有的数据块,而是根据索引只查其中的一部分。
在你决定在哪个分区前,还需要判断数据是否在[a,b]之内。这和在索引的B树上走两个节点不会有太多的时间差别吧。
xiaoxiao1984
2006-07-05
打赏
举报
回复
补充一下:查询 [a,b]之间的数据的时候只查询分区1
xiaoxiao1984
2006-07-05
打赏
举报
回复
分区还可以提高查询的性能,例如分区的时候定义的时 [a,b]之间的数据在分区1上,那么在查询的时候只会查询分区1上的数据,而不会查询其他分区
硬盘
分区
表
简介
毫无疑问,大多数人都有过对硬盘
分区
的经验。
一块
刚买来的新硬盘,必须要经过
分区
之后才能使用。但是具体的
分区
信息在硬盘上是怎么存储的呢?
分区
后的硬盘上有一个重要的数据结构,叫做硬盘
分区
表
。这个数据结构就是保存
分区
信息的地方。一般来说,硬盘
分区
表
的第一部分(主
分区
表
)位于硬盘的第一个扇区(主引导记录)中。占据这个扇区的第446-510个字节。这是一个4个元素的数组,每一项代
表
磁盘
分区
类型和
分区
表
的区别
任务1 罗列
磁盘
分区
的类型并做比较性介绍 分类: FAT16、FAT32、NTFS、EXT2、EXT3、EXT4 FAT16:
磁盘
分区
最大只能到2GB、 使用簇的大小不恰当、 FAT16使用了16位的空间来
表
示每个扇区 文件名长度有限制 FAT32: 相比FAT16 会拥有更多的簇,更大空间 容量上限为16TB 根目录区(ROOT区)不再是固定区域、固定大小 速度和FAT16一样快,对大
磁盘
利用率比FAT16好 文件名长度有限制 NTFS: 备3个功能:错误预警功能、
磁盘
自我修复功能和日志功能 安全性,
【Linux】MBR
磁盘
分区
表
只能有四个
分区
?
1 第一个扇区
磁盘
的第一个扇区(也可以叫做MBR,根据语境确定是第一个扇区还是主引导
分区
)记录了整块
磁盘
的重要信息,是计算机开机后访问
磁盘
时所必须要读取的首个扇区。主要有三个部分: 主引导
分区
(Master Boot Record,MBR):主要
作
用是检查
分区
表
是否正确,并且在系统硬件完成自检以后将控制权交给
磁盘
上的引导程序(如GNU,GRUB);
分区
表
(partition table):占...
GTP与MBR硬盘
分区
区别(UEFI介绍)
在重装win7或win8系统时,经常会提示
磁盘
具有MBR
分区
表
和GPT
分区
表
,从而无法安装Windows,那么
磁盘
MBR
分区
表
和GPT
分区
表
是什么意思呢?MBR和GPT
分区
表
有什么不同?下面跟小编一起来学习下吧! 一、MBR
分区
表
MBR是主引导记录(Master Boot Record)的英文缩写,在传统硬盘
分区
模式中,引导扇区是每个
分区
(Partition)的第一扇区,而主引导扇区是硬盘的第一...
u盘第一扇区
分区
表
_重装系统必须注意了!硬盘
分区
表
类型(MBR、GPT)选择很重要-文件系统类型...
前段时间,电脑学习小编买了
一块
3T的机械硬盘用于存放视频教程,买回来第一件事就是给硬盘
分区
,小编只想分一个3T大的区就行了,默认情况下,我的
分区
表
类型选择了MBR,但是,格式化后发现根本不能分一个区,这到底是怎么回事呢?其实,这就是硬盘
分区
表
MBR和GPT的区别。那么MBR和GPT到底有什么区别呢?MBR
分区
表
(Master Boot Record的缩写),即硬盘主引导记录
分区
表
,它只支持容量在...
Oracle 高级技术
3,490
社区成员
18,714
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章