博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
db2 reorg到底需要多少表空间(转)
阅读量:7063 次
发布时间:2019-06-28

本文共 2249 字,大约阅读时间需要 7 分钟。

脱机reorg需要一定的空间,这个空间与目标所在的数据表空间、索引表空间、以及临时表空间均有关,各空间需求的大小与表和索引所占用的数据页和索引页相关。(1)执行reorg操作如: reorg table tabschema.tabname,可以理解成四个步骤:1、排序2、构建3、替换4、重建索引当执行第1,2,3步时,使用目标表所在的数据表空间,将在数据表空间中建立目标表的影子副本。此时,数据表空间会增长,增长量为目标表实际大小:Npages*表空间页大小。Npages:表示目标表有效数据页,Npages可通过如下方式获得,但未必精确,最好先收集一下统计信息(runstats)。db2 "select substr(tabname,1,20),Npages,Fpages,card from syscat.tables"1,2,3结束后,数据表空间碎片整理完成,空间回收。当执行第4步时,使用系统临时表空间,有几个索引顺序重建几次。此时,系统临时表空间会增长,增长量为单个索引占用的大小,约为:nleaf*索引表空间页大小。nleaf:表示有效索引页,nleaf可通过如下方式获得,但未必精确,最好先收集一下统计信息(runstats)。db2 "select substr(tabname,1,20),substr(indname,1,18),nleaf,indcard from syscat.indexes"4结束后,reorg table完成。(2)对索引执行reorg操作如:db2 reorg indexes all for table tabschema.tabname一般一张表有多个索引,将对多个索引一个一个地依次进行reorg操作,最后统一替换。表空间使用情况:系统临时表空间会增长,增长量为单个索引占用的大小,约为:nleaf*索引表空间页大小。索引表空间会增长,增长量为一张表中所有索引占用的大小。例如对一张表的3个索引进行reorg操作,可以看到如下现象:索引表空间立即降到一个值:A,系统临时表空间增长,增长"nleaf*索引表空间页大小"后下降至初始大小,同时索引表空间增长"nleaf*索引表空间页大小",系统临时表空间又增长,增长"nleaf*索引表空间页大小"后又下降至初始大小,同时索引表空间在第一次增长的基础上又增长"nleaf*索引表空间页大小",系统临时表空间再增长,增长"nleaf*索引表空间页大小"后再下降至初始大小,同时索引表空间再前两次增长的基础上再增长"nleaf*索引表空间页大小",最后,索引表空间直接降到一个值:A,系统临时表空间回收。(3)对表执行reorg操作如:db2 reorg table tabschema.tabname use tempspace1对表和索引均进行reorg操作均在系统临时表空间中进行先对数据页reorg,再对索引页reorg数据页reorg需要的系统临时表空间为:Npages*表空间页大小一般一张表有多个索引,索引reorg将一个一个依次顺序进行,单个索引的索引页reorg需要的系统临时表空间为:nleaf*索引表空间页大小(4)在线对表做reorg时,表空间使用非常少。一般为表空间的extent size(一般为32k),多个并发的话,就要多个extent size。知道reorg怎样使用表空间之后,我们在做reorg时就要注意各个空间是否预留足够,预留多少算足够呢?可以按一下方法推算:(1)离线不指定临时表空间reorg table(目前常用的)数据表空间预留最大Npages的量,最大的Npages*表空间页大小,最大的表对应的Npages可通过以下sql获得db2 "select substr(tabname,1,20),Npages,Fpages,card from syscat.tables order by Npages desc fetch first 10 rows only"临时表空间预留最大nleaf的量,最大的nleaf*表空间页大小,最大的索引对应的nleaf可通过以下sql获得db2 "select substr(tabname,1,20),substr(indname,1,18),nleaf,indcard from syscat.indexes order by nleaf desc fetch first 10 rows only"(2)reorg indexes all索引表空间预留单个表中含有的所有nleaf的量db2 "select substr(tabname,1,20),substr(indname,1,18),nleaf,indcard from syscat.indexes where tabname=''"临时表空间预留最大nleaf的量(3)离线指定临时表空间reorg table use tempspace临时表空间预留最大Npages的量和最大nleaf的量以上是一个时间点只对一张表进行reorg,但同一时间多张表并行reorg时,就要算多个表的空间了。建议,所有的数据表空间和索引表空间的使用量控制在50%以下,这样就不用担心数据和索引的表空间溢出了。对于临时表空间,建议至少有最大nleaf的量。

转载于:https://www.cnblogs.com/dahaoran/p/9257779.html

你可能感兴趣的文章
配置淘宝镜像
查看>>
HTA+VBS实现的话单核查小工具
查看>>
AngularJS模块之$scope
查看>>
LiteORM学习五:实体类验证
查看>>
理解CDN
查看>>
数据库操作类
查看>>
字典序全排列算法研究
查看>>
面试学到的css布局,细节影响了我的面试成绩
查看>>
Ubuntu16.04 安装lamp环境
查看>>
apache伪静态规则及常见规则用法实例
查看>>
去哪儿网电话是多少
查看>>
13、 使用openpyxl存储周杰伦的歌曲信息
查看>>
[python] A*算法基于栅格地图的全局路径规划
查看>>
苹果新的编程语言 Swift 语言进阶(二)--基本类型
查看>>
git分支管理
查看>>
VS2017 ASP.NET C#编译ScriptManager bug
查看>>
模数混合电路(模拟、数字电源和地)
查看>>
自然语言处理入门
查看>>
Jquery中children、find区别
查看>>
java窗体
查看>>