DB2 10.5 linux 数据库查询命令 及 表空间降低高水位(释放磁盘空间)
来源:互联网 发布:telent的端口号 编辑:程序博客网 时间:2024/06/03 20:43
1.DB2查询基础命令
- 连接: db2 connect to [dbname] user [username] using [password]
- 列出当前实例中所有激活的数据库: db2 list active databases
- 显示当前连接应用:db2 list application
- 显示当前用户下的表:db2 list tables for
指定其它特定用户: db2 list tablse for schema [username] - 显示表空间信息:
<1>.db2 list tablespaces [show detail]
<2>.db2pd -tablespaces -db 数据库名
<3>.db2 get snapshot for tablespaces on [dbname]. 结果中Using automatic storage: 表示DMS类型表空间是否为自动存储属性
注:上述自动存储与自动增长(Auto Risize)是两个概念.
设置自动增长:db2 alter tablespace USERSPACE1 autoresize yes increasesize 10240K maxsize none; - 查询:db2 “select * from table”
- 数据TOPN排序:fetch first 10 rows only order by [column] [asc/desc]
更多详细操作
2.DB2检查表空间使用率
- 连接DB: db2 connect to [dbname] user [username] using [password]
查询:
db2 "select char(TBSP_NAME,50) as TBSP_NAME, TBSP_USABLE_PAGES, TBSP_USED_PAGES, rtrim(100*TBSP_USED_PAGES/TBSP_USABLE_PAGES)||'%' as USED_RATE from sysibmadm.SNAPTBSP_PART where TBSP_USABLE_PAGES>0 order by TBSP_NAME,DBPARTITIONNUM"
3.DB2查看表所占磁盘空间
- 查看数据库页大小: (单位字节)
db2 get db cfg|grep page 查询数据表占用页的数量:
db2 "select tabname, npages from syscat.tables where tabname = 'Table_Name' "
Table_Name替换为实际表名.(下同)
计算表占用磁盘空间大小:
表占用磁盘空间大小 = 数据页大小 * 页数量db2 "select tabname, npages*4096/(1024*1024) as mem from syscat.tables where tabname = 'Table_Name' "
4.DB2降低表空间高水位
使用查询语句筛选出所有高水位标记大于已使用页的表空间:
db2 "SELECT varchar(tbsp_name, 16) as tbsp_name, RECLAIMABLE_SPACE_ENABLED,TBSP_USED_PAGES, TBSP_FREE_PAGES, TBSP_PAGE_TOP from TABLE (MON_GET_TABLESPACE('',-2)) AS t where t.TBSP_PAGE_TOP > t.TBSP_USED_PAGES"
查看 RECLAIMABLE_SPACE_ENABLED 这一栏,这是表空间的“可回收存储器”属性。如果是 1,则表示空间可回收。
ALTER TABLESPACE(降低表空间USERSPACE1高水位):
<1>.DMS自动存储表空间(DMS with AutoStorage):(采用了自动存储的表空间,直接运行 REDUSE MAX 来最多的释放空闲空间)
db2 ALTER TABLESPACE USERSPACE1 REDUCE MAX
<2>.DMS非自动存储表空间:(需要先运行 LOWER HIGH WATER MARK 子句降低高水位标记,再运行 REDUCE 子句释放表空间。)
ALTER TABLESPACE [TBS NAME] LOWER HIGH WATER MARK
ALTER TABLESPACE [TBS NAME] REDUCE (ALL CONTAINERS 10 M)
注:查询DMS类型表空间是否为自动存储:
db2 get snapshot for tablespaces on [dbname] . Using automatic storage: yes/no 表示DMS类型表空间是否为自动存储属性监视表空间USERSPACE1移动:
db2 "SELECT varchar(tbsp_name, 20) as tbsp_name, NUM_EXTENTS_MOVED, NUM_EXTENTS_LEFT, TOTAL_MOVE_TIME from TABLE(MON_GET_EXTENT_MOVEMENT_STATUS('USERSPACE1',-2)) AS t"
USERSPACE1 100 1744 1664 该输出信息是在表空间 TBS1 降低高水位标记,释放空闲空间的过程中获取的。
当前显示已经移动了 100 个数据块,还剩下 1744 个数据块,共花费 1664ms 的时间。如果在非移动状态下,所有值为 -1.验证表空间USERSPACE1高水位标记的降低:(同样是通过表函数 MON_GET_TABLESPACE 来验证最后的结果)
db2 "SELECT varchar(tbsp_name, 16) as tbsp_name, TBSP_USED_PAGES, TBSP_FREE_PAGES,TBSP_PAGE_TOP from TABLE (MON_GET_TABLESPACE('USERSPACE1',-2)) AS t"
db2降低高水位参考链接
- DB2 10.5 linux 数据库查询命令 及 表空间降低高水位(释放磁盘空间)
- Delete/Truncate删除,释放表空间、降低高水位线、resize释放磁盘空间相关优化
- Oracle 高水位说明和释放表空间,加快表的查询速度
- DB2 v8.2 降低高水位线经验
- DB2 降低高水位线、刷新统计、索引信息
- 如何降低Oracle表的高水位?
- 降低高水位方法
- 降低高水位 oracle
- SHRINK SEGMENT降低高水位
- MOVE降低高水位 HWM
- 利用在线重定义降低表的高水位线
- 关于使用MOVE的方法降低表的高水位
- 使用shrink space降低表的高水位线
- 释放oracle 的高水位
- DB2操作数据库表空间命令
- DB2的高水位标记
- ORACLE 查询高水位表 脚本
- 何时应该降低高水位(HWM)
- 小C语言--词法分析程序
- static函数、变量
- 正阅读微信小说分销系统-视频教程-6.生成推广文章-代理商必看-没有公众号也能推哦!
- 工作开发帮助博客收藏
- Maximum Binary Tree
- DB2 10.5 linux 数据库查询命令 及 表空间降低高水位(释放磁盘空间)
- 关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no encoding
- Ldap创建多层Organizational Unit
- PingWest品玩 HAY! 17 科技嘉年华—首个数码粉丝线下辩论赛
- DL
- 创建oracle数据库用户
- PAT 甲级 1036. Boys vs Girls (25)
- 数组
- 栈的压入、弹出序列