楼主: foxmile

[原创] 关于oracle数据块和操作系统块的关系。

[复制链接]
论坛徽章:
0
61#
发表于 2009-2-7 14:04 | 只看该作者

关于块~~

Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位。

块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块的大小和标准块的大小不同的块叫非标准块(Nonstandard Block)。同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标准块和非标准块。Oracle允许指定5种非标准块(Nonstandard Block)。

操作系统每次执行I/O的时候,是以操作系统的块为单位;Oracle每次执行I/O的时候,都是以Oracle的块为单位。

Oracle数据块大小一般是操作系统块的整数倍。

来源:http://space.itpub.net/?uid-1380 ... space-itemid-331154

使用道具 举报

回复
论坛徽章:
41
秀才
日期:2015-07-30 11:13:40秀才
日期:2015-09-06 10:42:32秀才
日期:2015-09-10 09:29:01处女座
日期:2016-05-27 11:00:18
62#
发表于 2009-2-12 21:35 | 只看该作者
巩固了。。。

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
63#
发表于 2013-2-5 10:23 | 只看该作者
当ORACLE的数据块设置的比OS的数据块大小小的时候,会怎样?

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
64#
发表于 2013-2-12 03:23 | 只看该作者
本帖最后由 jayli426 于 2013-2-12 03:24 编辑
Yong Huang 发表于 2008-11-4 22:17
This is a frequently asked question. First we need to make a distintion between OS space allocation  ...


对于IO chunk size实在不太理解

按照
http://storage.it168.com/a2011/0323/1169/000001169755_all.shtml
的说

在文件系统里面我们也能碰到一个文件系统的块,在现在很多的Linux系统中都是4K(通过 /usr/bin/time -v可以看到),
它的作用其实跟数据库里面的块/页是一样的,都是为了方便数据的管理。
但是说到单次IO的大小,跟这些块的大小都是没有直接关系的,在英文里单次IO大小通常被称为是IO Chunk Size,不会说成是IO Block Size的。

可是yonghuang师傅的定义貌似就是 簇的大小(如果是对应操作系统的话)
至少后面Foxmile貌似也是这样理解的?

但是那篇文章的意思IO Chunk Size是一个不定的值哦?

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
65#
发表于 2013-2-12 04:04 | 只看该作者
foxmile 发表于 2008-11-8 21:38
即使裸设备,也是有块的。。。。。。。。。 ,虽然绕过了操作系统,我觉得,读取数据还是存在晶晶版主 ...

请问裸设备的块,要如何理解?

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
66#
发表于 2013-2-12 10:55 | 只看该作者
> yonghuang师傅的定义貌似就是 簇的大小(如果是对应操作系统的话)

The word "cluster" is usually used in the context of file systems on Windows. Other OS's don't normally use this word. But the meaning is the same as what I call I/O chunk size, which some people call file system block size, some call file system buffer size. I like to avoid the phrase "block size" because it may be confused with sector size (almost always 512 bytes in most traditional OS's).

> 裸设备的块,要如何理解?

There's no file system. It's up to the program that determines how much you want to write at a time, as "xxx" in 'dd bs=xxx'.

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
67#
发表于 2013-2-12 21:15 | 只看该作者
本帖最后由 jayli426 于 2013-2-12 21:16 编辑
Yong Huang 发表于 2013-2-12 10:55
> yonghuang师傅的定义貌似就是 簇的大小(如果是对应操作系统的话)

The word "cluster" is usually us ...


可能是我没有把问题描述清楚,我还是引用之前那篇文章的部分

 还有对于有些存储系统也是提供了缓存(Cache)的,接收到操作系统的IO请求之后也是会将多个操作系统的 IO请求合并成一个来处理。、
  不管是操作系统层面的缓存还是磁盘控制器层面的缓存,目的都只有一个,提高数据读写的效率。
    因此每次单独的IO操作大小都是不一样的,它主要取决于系统对于数据读写效率的判断。

  当一次IO操作大小比较小的时候我们成为小的IO操作,

     比如说1K,4K,8K这样的;当一次IO操作的数据量比较的的时候称为大IO操作,比如说32K,64K甚至更大


这篇文章的意思,每次 a single IO 的size是不同的哦?
这样我就晕了。
而你的意思是这个IO chunk size值是固定的?

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
68#
发表于 2013-2-12 21:19 | 只看该作者
Yong Huang 发表于 2013-2-12 10:55
> yonghuang师傅的定义貌似就是 簇的大小(如果是对应操作系统的话)

The word "cluster" is usually us ...

“There's no file system. It's up to the program that determines how much you want to write at a time, as "xxx" in 'dd bs=xxx'.”

取决于程序?
如果我一次写100M,那么裸设备的块就是100M?

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
69#
发表于 2013-2-13 03:29 | 只看该作者
> 如果我一次写100M,那么裸设备的块就是100M?

The concept of block has very little meaning on raw. It's only meaningful during that specific I/O, such as a command I type at a specific time on a specific terminal "dd bs=...". After that, the "block" is meaningless. The sentence "裸设备的块就是100M" by itself is a meaningless sentence.

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
70#
发表于 2013-2-15 23:42 | 只看该作者
Yong Huang 发表于 2013-2-12 10:55
> yonghuang师傅的定义貌似就是 簇的大小(如果是对应操作系统的话)

The word "cluster" is usually us ...

请问 IO chunk size值是固定的还是不固定呢?
这导致的结果会明显不同啊

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表