在本月出账的过程中,出现表空间不足的情况。虽然在出账之前已清理过数据库中不用的表,但无奈只关心了其中一个,而忽略了另外一个,导致在跑大数据量的存储过程时出现空间不足。
出现此问题的解决办法是将目前库中已经不适用的表删除掉,已节省空间。
但在删除的过程中,要一个一个表去查找,很是麻烦。经查资料,发现有如下几种解决办法:
1、逐个看在需要清除的表空间中的表哪些是已经不用的,将此备份出来之后删除。
2、使用db2的系统表SYSCAT.TABLES中根据LASTUSED字段查询最后的使用时间。该字段是在v9.7版本之后才有的字段。不单单是表的最后使用时间,在在SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中都已经增加了一列LASTUSED 。而我们库是使用的v9.5,因此此方法可以在以后升级之后使用。
3、就是使用db2pd工具来查询表的insert update delete条数,通过这个也是可以判断出表的使用频率的。不过此方法也只能做一个参考了。
使用db2pd的具体方法是: db2pd -d sample -tcbstats index
当你在SAMPLE数据库上运行db2pd工具时,使用tcbstats选项,将参数index传给它,你将会看到一串很长的输出内容,当你查看TCB Index信息时,你需要查找SCANS列,你必须通过catalog表相互关联Index ID(IID)和索引名。
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:09:45
TCB Table Information:
Address TbspaceID TableID PartID MasterTbs MasterTab TableName 0x7C6EF8A0 0 1 n/a 0 1 SYSBOOT 0x7A0AC6A0 2 -1 n/a 2 -1 INTERNAL
TCB Table Stats:
Address TableName Scans UDI RTSUDI 0x7C6EF8A0 SYSBOOT 1 0 0 0x7A0AC6A0 INTERNAL 0 0 0
TCB Index Information:
Address InxTbspace ObjectID TbspaceID TableID MasterTbs 0x7A0ABDA8 0 5 0 5 0 0x7A0ABDA8 0 5 0 5 0
TCB Index Stats:
Address TableName
IID EmpPgDel RootSplits BndrySplts PseuEmptPg Scans
0x7A0ABDA8 SYSTABLES
9 0 0 0 0 0
0x7A0ABDA8 SYSTABLES
8 0 0 0 0 0
上面的输出为了简洁美观,我做了剪裁,索引名关联IID,并使用Scans=0查找索引。
如果你的数据库运行了有一个月,你可以运行db2pd工具找出有一个月都未曾使用过的索引。当你运行db2pd工具且数据库处于活动状态时,所有这些信息存在的时间都是非常短暂的,但SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中LASTUSED列的信息是持久存储的,通过它,你可以找出对象的最后访问时间,请记住DB2 for z/OS很久以前就有这个功能了,DB2 LUW现在也有这个功能了。
原文出处:http://www.db2ude.com/?q=node/127
分享到:
相关推荐
比如,当用户在编写SQL查询语句时,仅需输入字段或表的前几个字母,DB2查询分析器便会基于现有的数据库结构,弹出一个下拉菜单,列出所有匹配的字段名或表名供用户选择。这不仅加快了编码速度,也保证了语法的准确性...
1. **子查询**:通过使用`WITH`子句定义了两个临时表`a`和`bas`,其中`a`用于计算各个表的大小和创建时间,而`bas`则用于累积计算所有表的总大小。 2. **条件过滤**:脚本中定义了一系列的过滤条件,以确保只删除...
在长时间运行或因硬件故障、软件错误等原因,DB2中的表可能会发生损坏,表现为数据不一致、查询异常或直接报错等问题。表损坏不仅影响数据的可靠性和业务的连续性,还可能导致服务中断,因此,快速恢复表的正常状态...
本文将深入解析db2定时任务的使用方法,包括其基本概念、配置步骤、以及如何通过具体实例来理解和应用这一功能。 ### 基本概念 在DB2中,定时任务(也称为计划任务)允许用户在预定的时间执行特定的SQL语句或程序...
最后,删除原始表,并将新表重命名为原始表的名字。这样,用户将不会察觉到表的变化,而实际上已经完成了数据类型的修改。 ```sql DROP TABLE FA_DAILY_REPORT_ITEM; RENAME TABLE FA_DAILY_REPORT_ITEM810 TO FA_...
在DB2版本10.5中,表分区是一个推荐的策略,尤其是对于大型数据集,它可以加速查询并改善I/O操作。以下是对DB2数据库表分区创建的详细步骤和相关知识点的解释: 1. **DB2环境检查**: 首先,确认DB2的安装环境,...
`db2advis`将根据提供的快照数据为每个表生成最优索引建议,帮助提高查询性能。 #### 总结 通过上述步骤,我们已经学会了如何使用`db2top`工具来收集数据库快照,并进一步使用`db2advis`工具来生成索引建议。这些...
首先,"DB2V9.5性能调整.pdf"可能会详细讲解如何优化DB2的运行效率,包括SQL查询优化、内存配置、索引设计、并行执行策略以及数据库的硬件调优等方面。性能调整对于确保数据库高效稳定运行至关重要,它可以帮助企业...
对于DB2性能的调试,可以使用IBM Data Studio或DB2 Performance Expert。这些工具提供实时性能监控,包括CPU使用率、内存消耗、I/O等待时间等关键指标。通过对这些指标的跟踪,可以发现系统瓶颈并进行优化。 3. **...
在实际项目中,通常将RUNSTATS与REORG结合使用,先执行REORG,再运行RUNSTATS,最后使用REBIND更新数据库以获得最新的执行计划。 对于数据快速变化的表,例如在电信移动行业的月末汇总表,RUNSTATS可能无法提供准确...
总结来说,优化DB2查询性能的关键在于合理设计数据库结构,如使用物化查询表、多维集群和表分区,以及确保参照完整性和有效利用缓冲池。这些策略对于Windows平台上运行的DB2 9,以及其他平台的DB2环境都具有指导意义...
### DB2专有名词解释 #### INSTANCE (实例) 在DB2环境中,**实例**是指运行DB2数据库管理系统软件的一个特定进程集合。...一个操作系统上可以安装多个DB2实例,每...使用`DB2 REORG`命令可以重新组织表,以改善查询性能。...
2. **参数化查询**:避免使用动态SQL,尽可能使用参数化查询,这有助于DB2优化器生成高效的执行计划。 3. **合理使用索引**:为经常用于WHERE子句的列创建索引,但也要注意过度索引可能带来的维护成本和写操作性能...
最后,进行DB2开发时,开发者还需要熟悉一些工具,如DB2控制中心、DB2命令行处理器、DB2 Explorer等,这些工具可以帮助管理和监控数据库。 总之,"db2基础知识培训ppt"会涵盖DB2的基本概念、SQL语法、数据库设计、...
最后,定义SQL查询语句,如`SELECT * FROM loadtable WHERE col1 = ?`,并在参数中传入变量或常量值。 ##### 4. **运行测试并分析结果** 运行测试后,JMeter会显示详细的测试结果,包括平均响应时间、吞吐量、错误...
在设计小型数据仓库时,DB2数据库系统的运用是一个重要的环节,它涉及到表空间设计、内存分配、并行处理以及备份策略等多个方面。以下将详细介绍各个方面的知识。 首先,表空间设计是数据仓库设计的关键步骤,它...
最后,教程可能还会涵盖数据库的监控和维护,包括如何使用DB2的管理工具检查数据库状态、分析性能瓶颈以及定期进行维护任务,如日志清理和空间管理。 总的来说,"DB2通用数据库SQL教程"是一份全面的学习资料,无论...
1. 执行reorg后,通过查询表的FPAGES字段来评估压缩效果。 #### 十五、表数据重组(压缩)reorg命令的两种常用格式? reorg命令有两种常用格式: 1. **简单格式**:`REORG TABLE YOUR_TABLE_NAME;` 2. **高级格式*...
最后,"CodePub.Com说明.txt"可能包含有关如何使用CodePub平台进行代码分享或学习DB2技术的相关信息。这个平台可能是学习和交流DB2知识的一个资源库。 综上所述,"DB2技术参考大全"全面覆盖了DB2的各个核心领域,从...