脱机reorg需要一定的空间,这个空间与目标所在的数据表空间、索引表空间、以及临时表空间均有关,各空间需求的大小与表和索引所占用的数据页和索引页相关。
(1)对表执行reorg操作如:db2 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的量。

db2 reorg到底需要多少表空间(转)的更多相关文章

  1. DB2支持的三种表空间SMS、DMS、DMS的自动存储

    DB2支持的三种表空间SMS.DMS.DMS的自动存储 DB2中,表空间是数据库与这个数据库中存储的表之间的逻辑层.表空间在数据库中创建,表在表空间中创建.容器是一个物理存储设备.它可以由目录名.设备 ...

  2. db2实例、数据库、表空间

    创建数据数据库之前必须创建实例,数据库是运行在实例之上的.实例在本质上是由一些后台进程和共享内存组成.实例相当于是数据库的一个容器,可以包含多个数据库,但是一个数据库只能由一个实例进行管理.相当于Wi ...

  3. 【DB2】表空间相关详细说明

    -.创建表空间 1.创建用户表空间 声明:在指定表空间创建路径的时候,需要指定空文件夹,非空文件夹会导致创建报错!!!如果文件夹不存在,那么在创建表空间的时候会自动创建文件夹! 1.1 创建SMS表空 ...

  4. db2表空间及日志文件调整

    1.SQLState '57011' and errorCode '-964'  原因:数据库的日志文件已满  解决方法:修改日志文件大小(加大),增加日志文件个数,增加辅助日志文件个数(三个修改参数 ...

  5. DB2表空间

    https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0902yuancg/ 临时表空间的使用 (sorts or jo ...

  6. DB2 表空间和缓冲池

    简介 对于刚涉足 DB2 领域的 DBA 或未来的 DBA 而言,新数据库的设计和性能选择可能会很令人困惑.在本文中,我们将讨论 DBA 要做出重要选择的两个方面:表空间和缓冲池.表空间和缓冲池的设计 ...

  7. DB2缓冲池、表空间

    在DB2中建立表空间得指向该表空间所属缓冲池,否则表空间指向默认缓冲池 1.缓冲池 1.1 创建缓冲池 语法:CREATE BUFFERPOOL <bp_name> SIZE <nu ...

  8. DB2因表空间不够产生load表失败

    今天下午恢复表的时候发现出现错误: SQL3520W  Load Consistency Point was successful. SQL3110N  The utility has complet ...

  9. 解决DB2事物日志满、扩充表字段长度和表空间的命令

    解决DB2事物日志满.扩充表字段长度和表空间的命令 转:http://blog.sina.com.cn/s/blog_4c0137d10100bb5r.html 一.通常我们在使用db2导入数据或进行 ...

随机推荐

  1. SoapUI Pro Project Solution Collection –Easy develop Groovy Script to improve SoapUI ability

    As you know the groovy script and java script language is the soapui supported .but unfortunately So ...

  2. StyleCop 代码走错 去掉 修改csproj文件

    <Import Project="..\packages\StyleCop.MSBuild.4.7.55.0\build\StyleCop.MSBuild.Targets" ...

  3. Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准

    Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准 1. 界面gui方面的前后端分离重大意义1 2. 业务逻辑也适当的迁移js化1 3. 常用分离方法2 3.1. 页面 ...

  4. mysql服务启动、停止、重启

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld sta ...

  5. 【Spark深入学习-11】Spark基本概念和运行模式

    ----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 ...

  6. [BigData - Hadoop - YARN] YARN:下一代 Hadoop 计算平台

    Apache Hadoop 是最流行的大数据处理工具之一.它多年来被许多公司成功部署在生产中.尽管 Hadoop 被视为可靠的.可扩展的.富有成本效益的解决方案,但大型开发人员社区仍在不断改进它.最终 ...

  7. 使用vuejs做一个todolist

    在输入框内输入一个list,回车,添加到list列表中,点击列表中的项样式改变 1.index.html <!DOCTYPE html> <html> <head> ...

  8. pip离线安装软件包

    1. 首先一台主机上安装所有python包,然后运行如下命令下载依赖包: pip freeze > requirements pip download -r requirements 当然可以在 ...

  9. 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)

    最详尽的 JS 原型与原型链终极详解,没有「可能是」.(一) 第二篇已更新,点击进入第三篇已更新,点击进入

  10. xampp+YII搭建网站

    一.安装xampp xampp专为php开发设计,需要的apache,mysql,php已经自带了.特别提醒,请下载PHP版本高于5.4支持Yii2.0的xampp 二.配置环境变量 在系统的环境变量 ...