前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >非标准数据块的表空间使用

非标准数据块的表空间使用

作者头像
bisal
发布2022-09-07 14:16:17
4210
发布2022-09-07 14:16:17
举报
文章被收录于专栏:bisal的个人杂货铺

你知道Oracle的数据文件大小有上限么?》这篇文章中有朋友说"能否写一篇添加数据文件时如何指定数据块大小的",其实这个操作,是Oracle OCM认证考试中某个场景的考题。

这是《Concept》中关于逻辑和物理存储结构的一张经典图,数据块是最小的I/O存储和处理单元,逻辑结构中,从数据块(Block)往上,就是区(Extent)、段(Segment)和表空间(Tablespace)。物理结构中,操作系统块,可以说起到了衔接的作用,一个Oracle数据块(例如8k)可以包含多个OS块(例如2k),一个数据文件则包含了多个OS块。同样起到衔接作用的,还有表空间,一个表空间可以包含多个数据文件。通过这种设计,达到了Oracle数据库存储数据的目的和保障。

c1e91dca996f43540b23151c9dc9ea38.png
c1e91dca996f43540b23151c9dc9ea38.png

从Oracle 9i开始,同一个数据库可以有多个不同数据块大小,每个不同的数据块都必需有其自己的缓冲区缓存。当数据库使用非标准块表空间时,db_nk_cache_size参数将会派上用场,不同块尺寸的数据缓冲区的大小就由相应参数db_nk_cache_size来指定,其中n可以是2、4、8、16或32。例如须创建一个大小为2k的非标准尺寸的表空间,则须先指定db_2k_cache_size为这个表空间指定缓存区的大小。但是,db_nk_cache_size不能设置默认标准块大小的缓冲区,例如默认块大小为8k,则不能设置参数db_8k_cache_size,因为这个是用来设置非标准块的。

如文章所说,Oracle默认数据块是8k,在数据库创建时指定的,如果此时要创建一个非标准数据块的表空间,需要设置db_nk_cache_size参数,如果是19c以上的CDB数据库,该参数需要在CDB中进行改动,PDB中改动,会提示错误,如下所示,

0457856bb422e717ea490d57ee406172.png
0457856bb422e717ea490d57ee406172.png

登录到CDB,可以看到db_32k_cache_size是0,

9f4b7d8ef11aa7fb23627357fcf1a5f9.png
9f4b7d8ef11aa7fb23627357fcf1a5f9.png

设置32k的参数,查询是生效的,

4ca4a068c553fd1555ddc4e90f4a05b9.png
4ca4a068c553fd1555ddc4e90f4a05b9.png

关于此处cache可以设置的最小值,官方文档描述,

values greater thanzero are automatically modified to be either the granule size * number ofprocessor groups, or 4 MB * number of CPUs, whichever is greater

登录PDB,创建32k表空间,

9283184be9c5e80cbeaba56e20ffa44a.png
9283184be9c5e80cbeaba56e20ffa44a.png

可以看到,已经创建了一个32k的表空间,

02051e2791784765cccff31550454911.png
02051e2791784765cccff31550454911.png

为了更直观说明,我们在默认8k数据块的表空间中创建一张表,其占据的数据块个数是256,

将其移动至32k数据块的表空间,占据的数据块个数是64,同一个数据块中存储的数据多了,需要的数据块个数就少了,

01ae4ea937a43fee0fad08e2759caf20.png
01ae4ea937a43fee0fad08e2759caf20.png

可以看出,Oracle在数据块粒度的设计上,还是有所考虑的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档