1.runstats的语法:
runstats on table [模式名].[表名] with distribution and detailed indexes all
注意:你可以在所有列上,或者仅仅在某些列或列组(除了LONG和LOB列)上执行RUNSTATS。如果没有指定特定列的子句,系统则会使用默认的ON ALL COLUMNS子句。
使用RUNSTATS WITH DISTRIBUTION
当您已确定表中包含不是统一分布的数据时,可以运行包含WITH DISTRIBUTION子句的RUNSTATS。目录统计信息表通常包含关于表中最高和最低值的信息,而优化器假定数据值是在两个端点值之间均匀分布的。然而,如果数据值彼此之间差异较大,或者群集在某些点上,或者是碰到许多重复的数据值,那么优化器就无法选择一个最佳的访问路径,除非收集了分布统计信息。使用WITH DISTRIBUTION子句还可以帮助查询处理没有参数标志符(parameter marker)或主机变量的谓词,因为优化器仍然不知道运行时的值是有许多行,还是只有少数行。
如果为单一索引进行runstats,可以使用:
runstats on table [模式名].[表名] for indexes [索引名]
2.runstats的作用:
一个SQL在写完并运行之后,其实我们只是告诉了DB2去做什么,而不是如何去做。而,具体的如何去做,就取决于优化器。优化器为了生成最优的执行计划,就得掌握当前的系统信息,目录中的统计信息等等。
runstats命令就是用来收集数据库对象的状态信息,这对优化器生成最优的执行计划至关重要。
3.什么时候需要runstats:
·在给表创建一个index后,我们最好做一次runstat,否则可能index没有生效。不过有说法称在8.2版本以后的DB2中,会在INDEX之后自动进行runstats;
·.在对table做了一次reorg后,记得要做一次runstats。因为对表做reorg,会修改表的很多信息,比如高水位等,所以做一次runstats,可以更新统计信息。
·当表里数据发生了比较大的变化,一般来说,大约表里面的数据量的10%-20%发生了变化,就应该作一次runstats。这些变化包括删除,修改,插入。对于一些非常大的表,比方在数据仓库的项目里面,某些事实表非常巨大。这个时候,完整的对一个大表作runstats可能花费时间相当大,DB2 8.1里面支持我们对这些大表作抽样,比方说只对20%的数据作runstats,这样的话,一般来说也能保证得到正确的执行计划。当然首先要确保这个表里面的数据最好分布比较均匀。
·.当你在分区(DPF)数据库里面使用了REDISTRIBUTE DATABASE PARTITION GROUP这个命令,那么就需要用runstats来收集新的统计信息。
4.其他
当表比较小的时候,runstats是一件很普通的事情。但是当表非常大的时候,runstats将会占用相当大的时间,cpu和内存。通常只在关键查询的速度开始减慢时,管理员才会对RUNSTATS给予适当的注意。您可以通过制定高效、有效收集统计信息的策略,避免未经思考就调优查询和执行RUNSTATS。
分享到:
相关推荐
本知识点将详细介绍DB2中索引碎片问题以及如何评估和处理索引碎片对RUNSTATS的影响。 首先,我们需要了解RUNSTATS命令的作用。RUNSTATS是DB2中用于收集表和索引统计数据的命令。统计数据对于查询优化器来说至关重要...
### DB2调优技巧详解 #### 一、性能优化的核心要素 DB2调优的核心在于提升性能,确保数据库能够高效、稳定...无论是大型企业的复杂应用场景,还是中小企业的日常运营,DB2都能提供卓越的数据管理能力和性能优化潜力。
DB2 是一个 relation database management system(关系数据库管理系统),广泛应用于企业级的数据存储和管理中。在 Linux 环境下,DB2 提供了丰富的命令行工具,用于管理和维护数据库。下面是常用的 DB2 命令。 1....
根据所提供的文件内容,我们将深入探讨DB2数据库管理系统中的一些基础且实用的操作命令,并对其应用场景进行详细解析。 **1. 启动与停止数据库** - **启动数据库**: `db2start` - **说明**: 用于启动本地或远程...
### DB2中的常用命令与导入导出操作详解 #### 前言 在数据库管理领域,DB2(Database 2)作为IBM推出的一款关系型数据库管理系统,在企业和组织中有着广泛的应用。相较于图形用户界面(GUI),通过命令行进行操作...
在DB2数据库管理系统中,用户权限的管理是确保数据安全性和控制用户访问的关键因素。本文将深入探讨DB2中的用户权限设置,特别是“LOAD”权限以及如何为用户授予权限。 #### 二、创建与授权用户 首先,我们需要...
在DB2数据库中,更新执行计划是一个关键的操作,因为它直接影响SQL语句的执行效率。DB2采用基于成本的优化器(CBO)来确定SQL语句的最佳执行路径。CBO根据多个因素,如CPU成本、I/O成本、系统目录中的统计信息以及...
- `db2 runstats on table 表名 with distribution and indexes all` 收集表和索引的统计信息。 10. **数据导入导出**: - `db2 export to 文件路径 of del select * from 表名` 导出数据到文本文件,使用...
在DB2数据库管理系统中,用户管理和权限分配是确保数据安全性和控制访问的重要环节。本文将详细介绍如何在DB2中创建用户并为其授予权限的过程。通过具体实例,帮助读者理解各个步骤和命令的含义。 #### 二、创建...
- `db2 runstats on table <table_name> with distribution and indexes all`:运行统计信息。 **注意事项:** - `<table_name>`应替换为实际的表名。 - 重新组织表可以提高查询性能,运行统计信息有助于优化查询...
- 使用命令`db2 –tf temp.sql > runstats.sql`生成批处理文件`runstats.sql`,该文件包含了针对所有表的`runstats`命令。 - **自动生成建表语句**: - 在服务器上的`C:\sqllib\misc`目录中执行: ```sql db2 ...
### DB2常用命令详解 #### 一、启动与停止数据库 ...该命令将生成一系列`runstats`命令,用于对数据库`DB2`中的所有用户表执行统计信息收集操作(排除系统表)。通过这种方式,可以批量执行维护任务,提高工作效率。
- **《leo:我与她(DB2)》**: 描述了作者与DB2之间的深厚情感以及如何通过DB2解决实际工作中的问题。 - **其他文章**: 还包括了多位作者关于DB2使用经历的文章,如《David:结缘》、《fcming915:我一步步的脚印...
在DB2中,`RUNSTATS`是一个重要的实用程序,用于收集表和索引的统计信息,这些信息对优化查询计划和提高查询性能至关重要。当数据库的大小或数据分布发生变化时,运行`RUNSTATS`可以确保数据库管理系统(DBMS)拥有...
1. **Runstats**:Runstats是DB2数据库管理系统中的一个重要工具,它负责收集关于表和索引的统计信息,如行数、唯一值的数量等。这些信息对于DB2优化器至关重要,因为它需要这些数据来确定执行查询的最佳路径。优化...
37. **更新统计信息**:`db2 runstats on table tb1` 更新`tb1`表的统计信息,帮助优化查询计划。 38. **备份数据库**:`db2 backup db test` 备份名为`test`的数据库,确保数据安全。 掌握这些基本的DB2操作指令...
- **runstats** 命令被提及,这是一种重要的DB2命令,用于收集表的统计信息,以便优化器能够更好地估计查询的成本。 - 文档还涉及到了如何利用这些统计信息来改进查询性能。 #### 3.3 表和索引管理 - 文档提到了表...
《DB2 SQL性能调优秘笈》是一本不可多得的DB2数据库性能调优秘笈,由拥有20余年DB2工作经验的资深数据库专家撰写,Amazon全...《DB2 SQL性能调优秘笈》最后还有2个附录,分别介绍了谓词的重写示例和DB2 SQL中的术语。
`db2 runstats on table <table_name> with distribution and indexes all` - 收集表的统计信息,帮助优化器做出更好的查询计划。 13. **导出表数据**:`db2 export to <output_file> of <format> select * from ...