摘要: 最近写一个DB2的REORG的脚本,因为以前在mysql里面是没有接触过这个REORG的,所以系统了解一下,我的学习的话是先从命令入手,看看这个名的结构,然后还有选项,这些选项会揭示一些这个命令能干什么事,了解了命令,命令的选项之后再去看相关的理论,再结合理解一下应该就会比较清晰一些了。
最近写一个DB2的REORG的脚本,因为以前在mysql里面是没有接触过这个REORG的,所以系统了解一下,我的学习的话是先从命令入手,看看这个名的结构,然后还有选项,这些选项会揭示一些这个命令能干什么事,了解了命令,命令的选项之后再去看相关的理论,再结合理解一下应该就会比较清晰一些了。
所以先来看命令吧。
REORG INDEXES/TABLE 命令
重新组织一个索引或一张表。
你可以通过 将索引数据重建到 碎片的,物理连续的页上面。在一个数据分区的表上,你可以重组一个特定的分区表上的非分区索引,或者,你可以重组某一个数据分区上的所有分区索引。
如果你声明了index子句的CLEANUP选项,在不重建索引的情况下将会执行cleanup(*cleanup is performed without rebuilding the indexes*)。这个命令不能被用于声明临时表和创建临时表的索引(*This command cannot be used against indexes on declared temporary tables or created temporary tables (SQLSTATE 42995)*)。
table选项 通过重建行来剔除碎片数据 和压缩信息来 重组一个表(*The table option reorganizes a table by reconstructing the rows to eliminate fragmented data, and by compacting information*),在一个分区表上,你可以重组一个单一分区。
Scope范围
这个命令影响在数据库分区组中的所有的数据库分区
Authorization权限
需要下列权限之一:
- SYSADM
- SYSCTRL
- SYSMAINT
- DBADM
- SQLADM
- CONTROL privilege on the table.
必要的连接信息Required connection
Database/数据库
命令语法
>>-REORG-------------------------------------------------------->
>--+-TABLE--table-name--| Table clause |--------------------------------+-->
+-+-INDEXES ALL FOR TABLE--table-name------------+--| Index clause |-+
| '-INDEX--index-name--+-----------------------+-' |
| '-FOR TABLE--table-name-' |
| .-ALLOW WRITE ACCESS-. |
'-TABLE--table-name--RECLAIM EXTENTS--+--------------------+---------'
+-ALLOW READ ACCESS--+
'-ALLOW NO ACCESS----'
>--+-------------------------------+---------------------------->
'-| Table partitioning clause |-'
>--+-------------------------------+---------------------------><
'-| Database partition clause |-'
Table clause
|--+-------------------+---------------------------------------->
'-INDEX--index-name-'
.-KEEPDICTIONARY--.
>--+-+-------------------+--+-------------------+--+-----------+--+---------------------+--+-----------------+-+--|
| +-ALLOW NO ACCESS---+ '-USE--tbspace-name-' '-INDEXSCAN-' '-| longlob-options |-' '-RESETDICTIONARY-' |
| '-ALLOW READ ACCESS-' |
| .-ALLOW WRITE ACCESS-. .-START--. |
'-INPLACE--+-+--------------------+--+------------------+--+--------+-+-------------------------------------'
| '-ALLOW READ ACCESS--' '-NOTRUNCATE TABLE-' '-RESUME-' |
'-+-STOP--+------------------------------------------------'
'-PAUSE-'
longlob-options
|--LONGLOBDATA--+-----------------------+-----------------------|
'-USE--longtbspace-name-'
Index clause
.-REBUILD---------------.
|--+--------------------+--+-----------------------+------------|
+-ALLOW NO ACCESS----+ '-space-reclaim-options-'
+-ALLOW WRITE ACCESS-+
'-ALLOW READ ACCESS--'
space-reclaim-options
|--+--------------------+--+-----------------+------------------|
| .-ALL---. | '-RECLAIM EXTENTS-'
'-CLEANUP--+-------+-'
'-PAGES-'
Table partitioning clause
|--ON DATA PARTITION--partition-name----------------------------|
Database partition clause
|--ON----------------------------------------------------------->
>--+-+-DBPARTITIONNUM--+--| Partition selection clause |-------------------------------------+--|
| '-DBPARTITIONNUMS-'