db2 查看表空间使用率
1. 统计所有节点表空间使用率
select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)/1024/1024 as "TOTAL(MB)",
used_pages*PAGE_SIZE/1024/1024 as "USED(MB)", free_pages*PAGE_SIZE/1024/1024 as "FREE(MB)"
from table(snapshot_tbs_cfg('DB_NAME', -2)) as snapshot_tbs_cfg
2、查看表空间使用率
select substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024 as TOTAL_MB,
sum(tbsp_used_size_kb)/1024 as USED_MB,sum(tbsp_free_size_kb)/1024 as FREE_MB,tbsp_page_size AS PAGE_SIZE
from SYSIBMADM.TBSP_UTILIZATION group by tbsp_name,tbsp_content_type,tbsp_page_size
order by 1
3、通过存储过程查看数据库大小和容量
db2 call GET_DBSIZE_INFO (?,?,?,0)
输出参数的值
--------------------------
参数名: SNAPSHOTTIMESTAMP
参数值: 2008-05-26-10.53.06.421000
参数名: DATABASESIZE
参数值: 1203863552
参数名: DATABASECAPACITY
参数值: 4281493504
unit=byte, byte/1024/1024=m
db2 call GET_DBSIZE_INFO (?,?,?,0)
注意:
a、从V8以上版本支持,此存储过程看数据库大小和容量;如果要看各表空间使用情况上面的sql方便,
b、还有DPF环境下,db2 call GET_DBSIZE_INFO (?,?,?,0)只能看dbsize大小,无法看db的容量
SYSIBM.SYSTABLESPACES
SYSIBM.SYSTBSPACEAUTH
2.db2查看表空间和增加表空间容量
Db2 connect to xxx
Db2 “LIST TABLESPACES SHOW DETAIL”
Tablespace ID = 7
Name = TSASNAA
Type = Database managed space
Contents = All permanent data. Large table space.
State = 0x0000
Detailed explanation:
Normal
Total pages = 14800
Useable pages = 14752
Used pages = 12864
Free pages = 1888
High water mark (pages) = 12864
Page size (bytes) = 8192
Extent size (pages) = 32
Prefetch size (pages) = 32
Number of containers = 1
增加表空间大小
DB2数据库使用时,如果表空间满了,该如何扩容呢?下文将教给您DB2数据库表空间扩容的方法,供您参考,希望对您有所帮助。
1)直接添加一个容器的例子:
db2 " ALTER TABLESPACE PAYROLL ADD (DEVICE '/dev/rhdisk9' 10000) "
加容器之后DB2会有一个自动balance的过程,可能会持续几个小时!!! 一定要注意该选项,修改前确认该选项是否能满足业务需求!
2)改变现有容器的大小(该方法不会触发balance,但如果表空间建立在裸设备上,则要扩冲裸设备空间):
db2 " ALTER TABLESPACE TS1 RESIZE (FILE '/conts/cont0' 2000, DEVICE '/dev/rcont1' 2000, FILE 'cont2' 2000) "
注意这种方式就是将原有的相应容器都改成大小是2000页
db2 "ALTER TABLESPACE TS1 RESIZE (ALL 2000)"
这种方式就是把表空间中所有的容器大小都改成2000页
db2 " ALTER TABLESPACE TS1 EXTEND (FILE '/conts/cont0' 1000, DEVICE '/dev/rcont1' 1000, FILE 'cont2' 1000) "
这种方式就是将相应的容器都扩大1000页,也就是增加1000页。
db2 " ALTER TABLESPACE DATA_TS EXTEND (ALL 1000)"
这种方式就是将所有的容器都增加1000页。
3.db2数据字典
select name from sysibm.systables where type='T' and creator='USERID' and tbspace='TS4R_DNJC' order by name;
select name from sysibm.systables where type='V' and creator='USERID' order by name;
type:数据库表用T表示;数据库视图用V表示
creator:数据库对象的创建者
select * from sysibm.syscolumns
select tabname from syscat.tables where tabschema=current schema ;
获取当前模式下面的所有用户表
describe table XXXX
SELECT NAME
,COLNO
,COLTYPE || '('
|| CAST(LENGTH AS CHAR(5)) || ','
|| CAST(SCALE AS CHAR(5)) || ')'
,CASE WHEN NULLS = 'N'
THEN 'NOT NULL' ELSE ' ' END
,TBNAME
WHERE TBCREATOR = 'TEST' -- < OR 'TEST'
-- AND (NAME = 'YOUR_COL_NAME' -- < COLUMN NAME \ ONLY USE ONE
AND (TBNAME = 'T_QUICK_MENU' -- < TABLE NAME /
)
ORDER BY TBNAME, COLNO
SELECT NAME FROM SYSIBM.SYSCOLUMNS
回答
4.求关于pending free pages的详细解释。
本人理解:
如果不是先清空表(例如alter table ..with empty table等),直接delete,其所占用的extents会变成pending_free_pages的一种中间状态,
只有在下面两种情况下才会彻底变成free_pages:
1)执行db2 list tablespaces show detail(多节点数据库要db2_all)
2)新建对象或者insert数据的时候,free_pages不够,需要扩展的时候就会从pending_free_pages中获取空间。
疑问:
free_pages快没了,pending_free_pages还有2G,向一个对象insert数据的时候报错“表空间不能分配新页”,这是不是说insert的时候不能用到pending_free_pages呢?
db2 查看表空间使用率的更多相关文章
- [转] 使用SQL脚本查看表空间使用率和使用dba_tablespace_usage_metrics视图的差别
传统的SQL脚本查看表空间使用率,使用的关键视DBA_DATA_FILE和DBA_FREE_SPACE. Oracle 11g引入了DBA_TABLESPACE_USAGE_METRICS视图.其实, ...
- 查看表空间使用率及shrink 表空间
首先,可以通过下面的sql statement来查看表空间的使用情况.注意,该语句是在10g下测试过. SELECT FREE.TABLESPACE_NAME, FREE.FREE_SPACE/TOT ...
- DB2查看表空间和增加表空间容量
Db2 connect to xxx Db2 “LIST TABLESPACES SHOW DETAIL” Tablespace ID = 7 Name = TSASNAA Type = Databa ...
- db2查看表空间
select substr(tbsp_name,1,20) as 表空间名称,substr(tbsp_content_type,1,10) as 表空间类型,sum(tbsp_total_size_k ...
- DB2查看表空间大小及使用情况
1.SQL 查询(选择Schema为SYSPROC) SELECT SUBSTR(TABLESPACE_NAME,,) AS TBSPC_NAME, AS "TOTAL(MB)", ...
- 【DB2】查看表空间对应的物理文件地址
使用的命令: db2 list tablespaces show detail db2 list tablespace containers for [Tablespace ID] [show det ...
- Oracle 查看表空间的大小及使用情况sql语句
--1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...
- oracle表空间使用率统计查询
今天发现有一张采样表从1月5号开始不记录数据了,所以想查看一下表空间使用率,在网上零零散散找了很多资料,现在记录如下,也不知道哪一个最准确.还有一个就是网上拷贝的sql代码格式太乱了,不好看,找到一个 ...
- Oracle dba_tablespace_usage_metrics 视图 查看表空间 说明
一.DBA_TABLESPACE_USAGE_METRICS 视图的理论说明 群里一朋友说使用dba_tablespace_usage_metrics 视图查看表空间的结果不正确,如下: ...
随机推荐
- 并发工具类(一)等待多线程的CountDownLatch
前言 JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch.CyclicBarrier.Semphore.Exchanger.Ph ...
- 图解http pdf
扫加公众号,回复“图解HTTP”,免费获取此书.
- C++官方文档-this
#include <iostream> using namespace std; class Dummy { public: int x; Dummy() : x() { } ; Dumm ...
- spring boot 整合案例
github : https://github.com/nbfujx/springBoot-learn-demo
- VisualSVN:允许修改svn提交日志(pre-revpro-change hook)
有时候需要对之前版本提交的错误的日志信息进行修改或者进行补充描述: 1.在windows 7( 64位 )下使用TortoiseSVN客户端,选中代码目录,点击右键,选择<显示日志> 在出 ...
- IIS 更新EXE文件
IIS 更新EXE文件 MIME,add,文件扩展名带不带.都可以,会自动加上.的 文件扩展名:.exe MIME类型:application/octet-stream .ini文件
- Spring DevTools 介绍
Spring DevTools 介绍 Spring Boot包括一组额外的工具,可以使应用程序开发体验更加愉快. spring-boot-devtools模块可以包含在任何项目中,它可以节省大量的时间 ...
- c#之using关键字
1.using可以引入命名空间: 2.在using语句里声明的变量,使用完后会自动调用Dispose方法(实现IDisposable接口). using 语句允许程序员指定使用资源的对象应当何时释放资 ...
- 关于gevent的一些理解(一)
前言:gevent是python的一个并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效.而且其中有个monkey类, 将现有基于Python线程直接转化 ...
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implemen ...