在数据库运维中,经常会遇到需要统计db2表大小的问题。在db2中提供了3种方法已供我们选择。分别为db2pd -tcbstats、admin_get_tab_info表函数和SYSIBMADM.ADMINTABINFO系统管理视图。
1、db2pdde tcbstats可以查看表的tcb信息,其中datasize字段用来表示表的页数,乘以页大小即为表的大小。使用该方法时,只有该表被访问过才会显示出来。
具体使用命令为db2pd -tcbstats。
2、Reorgchk结果中,npages代表页数,乘以页大小就是表的大小,但Reorgchk需要执行runstats,对于大表来说,需要的时间较长。
3、SYSIBMADM.ADMINTABINFO管理视图,db2 9版本引入,可以获得表的大小和状态信息,以kb为计量单位。
通过命令db2 describe table SYSIBMADM.ADMINTABINFO ,可以看到表的字段信息。
通过命令
SELECT (DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE +
LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) AS TOTAL_P_SIZE
FROM SYSIBMADM.ADMINTABINFO
WHERE TABNAME = '表名' 统计表所占用的物理空间大小,包括数据、索引、大对象和xml空间大小。
SYSIBMADM.ADMINTABINFO 中几个字段值得注意:DATA_OBJECT_L_SIZE和DATA_OBJECT_P_SIZE。其中DATA_OBJECT_L_SIZE代表表的逻辑大小(KB),DATA_OBJECT_P_SIZE为表的物理大小(KB)。逻辑大小和物理大小的差别是什么呢?想想一下,我们往某张表插入很多数据,然后删除一些数据,但表占据的空间并不会释放,当新的数据插入时,仍然会使用这些空间。实际占用的空间叫做逻辑空间,分配过的空间叫物理空间,逻辑空间可能会小于物理空间,这两者的差异可以通过reorg来消除。
除此之外,SYSIBMADM.ADMINTABINFO视图提供了其他几个有用的字段,如REORG_PENDING,INPLACE_REORG_STATUS,LOAD_STATUS等,详细解释,请参看信息中心。
4、admin_get_info表函数返回结果与SYSIBMADM.ADMINTABINFO管理视图类似。
我统计使用的是SELECT TABNAME,SUM(DATA_OBJECT_P_SIZE)/1024 FROM TABLE (SYSPROC.ADMIN_GET_TAB_INFO('模式','表名')) AS T GROUP BY TABNAME;
使用此语句,统计速度要比SYSIBMADM.ADMINTABINFO快很多。
分享到:
相关推荐
在DB2中,表空间是指数据库中用于存储数据和索引的逻辑存储单元。每个表空间都有其自己的存储区域,可以存储表、索引、视图、存储过程等对象。DB2表空间可以是系统管理的,也可以是用户定义的。 为什么DB2表空间...
DB2 Utilities Suite是DB2提供的一组工具,用于执行各种数据库管理和维护任务,如备份和恢复、性能监控、空间管理等。这些工具对于保持数据库系统的健康运行和提高管理效率具有重要作用。 #### 6. 术语和引用 文档...
1. list tablespaces show detail命令:该命令可以显示当前数据库中的所有表空间的详细信息,包括表空间的名称、类型、状态、总页数、可用页数、使用页数、空闲页数、高水位标记、高水位页数、页大小、extent大小、...
表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。在裸设备上创建的表空间,数据直接写入裸设备,减少了文件系统作为中间层带来的开销。 扩容裸设备主要涉及两个步骤:扩展逻辑卷(LV)...
DB2系统临时表空间过大可能引发严重的性能问题,这在实际操作中表现为SQL语句执行时间显著增加。本文以某银行的DB2数据库系统为例,深入探讨了如何诊断和解决此类问题。 首先,当遇到系统响应变慢、ACTIVE SESSION...
DB2在处理表空间中的索引时,可能会遇到分散存储的索引页面,而这些页面不再物理上连续。这导致DB2在进行索引扫描时,需要频繁地进行磁盘I/O操作来获取分散的索引页面,从而增加了扫描时间,使得RUNSTATS运行缓慢。 ...
搜了一下这个license发现都是索取金币的,我给大家分享一个免费版的,支持共享~~~ ps.这个是V9.7 的license 用法: 把db2ese_c.lic放到某个目录下: ...db2licm -a /opt/ibm/db2/V9.7/license/db2ese_c.lic
1. **异常中断**:例如,在执行某个命令时突然中断,这可能会导致DB2内部的一些资源状态不一致,从而阻止对该表空间的进一步写入操作。 2. **表空间状态异常**:表空间可能被设置为了某种特殊状态,比如“停顿的独占...
在本篇文章中,我们将详细介绍如何使用`db2top`来收集数据库活动快照,并进一步通过`db2advis`工具分析这些快照数据,为优化数据库性能提供宝贵的索引建议。 首先,为了确保`db2top`能够正确运行,我们需要进行必要...
本文将深入探讨DB2中表和表空间的各种状态,以及这些状态如何在实际场景中应用,旨在为数据库管理员和开发者提供全面的理解和应对策略。 #### 表空间状态概述 DB2支持多种表空间状态,每种状态都有其特定的含义和...
根据管理方式的不同,DB2中的表空间主要分为两种类型:系统管理空间(System Management Space, SMS)与数据库管理空间(Database Management Space, DMS)。这两种表空间在创建、使用以及管理上存在一定的差异。 #### ...
在DB2中,表空间是连接物理存储设备与逻辑对象(如表)的关键组件,它为数据库中的数据提供存储环境。表空间的设计与管理对数据库性能有着直接的影响,合理规划表空间能够优化数据存储效率,提升数据库整体性能。 #...
如果数据库采用数据库管理的空间(DMS)模式,则表和索引可以被放置在不同的常规表空间中。创建数据库时,会默认创建一个名为`USERSPACE1`的常规表空间。 3. **长表空间**:用于存储长型或LOB数据,这类数据必须...
在DB2中,表空间(Tablespace)是数据存储的基本单位,它将物理磁盘上的存储资源组织起来,为数据库对象(如表、索引等)提供逻辑存储空间。本篇文章将深入探讨DB2中的表空间概念、类型、创建以及管理方法。 一、表...
缓冲池是通过表空间与数据表发生联系的,数据表存放在指定的表空间中,每个表空间又有指定的缓冲池。 在 *unix 下,可以使用以下命令查看缓冲池相关信息: * 切换到 db2inst1 账号:su – db2inst1 * 连接到 exoa ...
在DB2数据库系统中,索引是优化查询性能的关键因素之一。正确地创建和维护索引可以显著提高数据检索的速度。DB2提供了多种工具来帮助用户管理和优化索引,其中“db2advis”索引分析器是一个非常有用的工具,它能够为...
所有DB2对象(如数据库、表空间、表、索引、视图、计划和包)都是由这个角色创建的。该角色“ERP_ROLE”被分配给用户ID“DBA01”,以便执行与DBA相关的任务。当用户“DBA01”离开公司并移除授权ID时,以下哪些陈述是...
表空间占满是DB2数据库中常见的一个问题,这种问题的发生通常具有以下几个特征: 1. **系统运行初期正常**:系统上线初期一切正常,但随着时间的推移,尤其是在运行一段时间(如半年左右)后,突然出现问题。 2. **...
在没有开启审计的情况下,DBA需要按照特定的步骤开启并设置数据表或表空间的审计选项,然后DB2才能记录相关的访问活动。 最后,DB2的DSN命令处理器是执行各种数据库管理操作的重要工具。该处理器提供了诸如删除不再...