9.3 注意事项
DB2中分区键的存放方式是以HASH算法来分布的,一般来说建议使用高基数的字段(拥有多个不同值)来作为分区键,这样可以使数据被平均分布,容易利用节点组中所有的节点资源来执行查询操作。
至于要达到你说的目的,在查询的时候只去访问一个节点来进行查询,当然也是可以的。我们来看一个例子:如果一个节点组上拥有10个节点,而作为分区键的字段MIXINT只有5个不同值的话,那么根据HASH算法,只有五个节点上会被分布到数据 .如:可以选择:user_id,product_no或者序列等较离散字段作为分区键进行建表
oracle可以明确的指定表空间,通过表空间来实现,DB2是通过节点实现的,并不是表空间一级的,用户并不明确知道存储在哪个节点。
• 查看一张表各分区数据分布情况,可以用以下命令:
#db2 “select dbpartitionnum(user_id), count(*) from dw.ods_cm_user_20070101 group by dbpartitionnum(user_id)”
第10章 日常监控
10.1 打开监控器
检查监控器开关
Db2 get monitor switches
打开监控器开关
db2 update monitor switches using bufferpool on lock on sort on statement on table on uow on
10.2 查看快照命令
Buffer Pool db2 get snapshot for bufferpools on database_name
Locks db2 get snapshot for locks on database_name
Dynamic SQL db2 get snapshot for dynamic sql on database_name
Table Activity db2 get snapshot for tables on database_name
Applications db2 get snapshot for applications on database_name
Tablespace db2 get snapshot for tablespaces on database_name
Database db2 get snapshot for database on database_name
Database Manager db2 get snapshot for DBM
10.3 监控相关sql
–Database manager:To capture a snapshot of database manager information:
SELECT * FROM TABLE( SNAPSHOT_DBM(-1)) as SNAPSHOT_DBM
–To capture a snapshot of database manager information specifically regarding the fast communication manager (FCM):
SELECT * FROM TABLE( SNAPSHOT_FCM(-1)) as SNAPSHOT_FCM
–To capture a snapshot of database manager information for a partition specifically regarding the fast communication manager(FCM):
SELECT * FROM TABLE( SNAPSHOT_FCMPARTITION(-1)) as SNAPSHOT_FCMPARTITION
–To capture the database manager’s monitor switch settings:
SELECT * FROM TABLE( SNAPSHOT_SWITCHES(-1)) as SNAPSHOT_SWITCHES
–Database: To capture a snapshot of database information:
SELECT * FROM TABLE( SNAPSHOT_DATABASE( ‘SAMPLE’, -1 )) as SNAPSHOT_DATABASE
–Application:To capture a snapshot of application information:
SELECT * FROM TABLE( SNAPSHOT_APPL( ‘SAMPLE’, -1 )) as SNAPSHOT_APPL
–To capture a snapshot of application identification information:Chapter 3. Using the Snapshot Monitor 23
SELECT * FROM TABLE( SNAPSHOT_APPL_INFO( ‘SAMPLE’, -1 )) as SNAPSHOT_APPL_INFO
–To capture a snapshot of lock wait information:
SELECT * FROM TABLE( SNAPSHOT_LOCKWAIT(‘SAMPLE’, -1 )) as SNAPSHOT_LOCKWAIT
–To capture a snapshot of statement information:
SELECT * FROM TABLE( SNAPSHOT_STATEMENT( ‘SAMPLE’, -1 )) as SNAPSHOT_STATEMENT
–To capture a snapshot of agent information:
SELECT * FROM TABLE( SNAPSHOT_AGENT( ‘SAMPLE’, -1 )) as SNAPSHOT_AGENT
–To capture a snapshot of subsection information:
SELECT * FROM TABLE( SNAPSHOT_SUBSECT( ‘SAMPLE’, -1 )) as SNAPSHOT_SUBSECT
–Buffer pool: To capture a snapshot of buffer pool information:
SELECT * FROM TABLE( SNAPSHOT_BP( ‘SAMPLE’, -1 )) as SNAPSHOT_BP
–Table space:To capture a snapshot of table space information:
SELECT * FROM TABLE( SNAPSHOT_TBS( ‘SAMPLE’, -1 )) as SNAPSHOT_TBS
–To capture a snapshot of table space configuration information:
SELECT * FROM TABLE( SNAPSHOT_TBS_CFG( ‘SAMPLE’, -1 )) as SNAPSHOT_TBS_CFG
–To capture a snapshot of table space quiescer information:
SELECT * FROM TABLE( SNAPSHOT_QUIESCER( ‘SAMPLE’, -1 )) as SNAPSHOT_QUIESCER
–To capture a snapshot of table space container configuration information:
SELECT * FROM TABLE( SNAPSHOT_CONTAINER( ‘SAMPLE’, -1 )) as SNAPSHOT_CONTAINER
–To capture a snapshot of the ranges for a table space map:
SELECT * FROM TABLE( SNAPSHOT_RANGES( ‘SAMPLE’, -1 )) as SNAPSHOT_RANGES
–Table: To capture a snapshot of table information:
SELECT * FROM TABLE( SNAPSHOT_TABLE( ‘SAMPLE’, -1 )) as SNAPSHOT_TABLE
–Lock: To capture a snapshot of lock information:
SELECT * FROM TABLE( SNAPSHOT_LOCK( ‘SAMPLE’, -1 )) as SNAPSHOT_LOCK
–Dynamic SQL cache: To capture a snapshot of dynamic SQL statement cache information:Snapshot monitor 24 System Monitor Guide and Reference
SELECT * FROM TABLE( SNAPSHOT_DYN_SQL( ‘SAMPLE’, -1 )) as SNAPSHOT_DYN_SQL
10.4 Db2pd
db2pd 提供了 20 多个选项显示关于数据库事务、表空间、表统计信息、动态 SQL、数据库配置和其他很多数据库细节的信息。单个 db2pd 命令可以检索多个领域的信息,并把结果保存到文件中。也可以在特定时期内调用该工具一定的次数,帮助您了解随着时间的变化数据库中的变动情况。该工具可用于故障检修、问题确定、数据库监控、性能调优和帮助应用程序的开发设计。本文介绍了这种新的工具,并通过例子说明如何使用它来提高生产率。
db2pd 命令有 22 个选项。如果要对所有数据库分区服务器上、所有活动的本地数据库运行所有这些选项,只需要输入 db2pd –everything,也可通过下表所示的范围选项限制信息的范围。
范围 |
范围选项 |
说明 |
实例 |
-inst |
用于实例 |
数据库 |
-database x |
用于特定的数据库x |
数据库 |
-alldatabase |
用于所有数据库 |
分区 |
-dbpartitionnum n |
用于特定的数据库分区服务器 |
分区 |
-alldbpartitionnums |
用于实例中的所有数据库分区服务器 |
注意,dbp2pd 选项可以在实例的范围内,也可以在数据库的范围内。如果使用数据库范围,指定的数据库必须已经激活。表 2 显示了每个 db2pd 选项、选项的说明和对应的范围。
db2pd 选项 |
说明 |
范围 |
agents |
返回关于代理的信息 |
实例 |
applications |
返回应用程序的信息 |
数据库 |
bufferpools |
返回缓冲池的信息 |
数据库 |
Catalogcache |
返回目录缓冲的信息 |
数据库 |
dbcfg |
返回数据库配置参数的设置 |
数据库 |
dbmcfg |
返回数据库管理器配置参数的设置 |
实例 |
dynamic |
返回动态 SQL 的执行信息 |
数据库 |
fcm |
返回快速通信管理器的信息 |
实例 |
help |
返回 db2pd 命令的帮助信息 |
无 |
logs |
返回日志信息 |
数据库 |
locks |
返回锁定信息 |
数据库 |
mempools |
返回内存池的信息 |
两者 |
memsets |
返回内存设置的信息 |
两者 |
osinfo |
返回操作系统信息 |
Instance |
recovery |
返回恢复活动的信息 |
数据库 |
reopt |
返回使用 REOPT ONCE 选项应用程序重新优化的 Cached SQL 语句的信息 |
数据库 |
reorg |
返回表重组的信息 |
数据库 |
static |
返回静态 SQL 和包的执行信息 |
数据库 |
sysplex |
返回和所有数据库或者某个数据库的别名相关的服务器列表信息 |
实例 |
tablespace |
返回表空间的信息 |
数据库 |
tcbstats |
返回表和索引的信息 |
数据库 |
transactions |
返回活动事务的信息 |
数据库 |
version |
返回当前 DB2 版本和级别的信息 |
实例 |
例子:
更好的是,可以指定 –repeat 参数重复该命令。比方说,下面的命令每 2 秒钟显示一次 DB2 内存信息,共 5 次:
db2pd –mempools –repeat 2 5 |
此外,通过 file= 参数还可以将特定 db2pd 命令选项的结果保存到文件中。file 和 repeat 参数可以结合使用:
db2pd –mempools file=memp.txt –repeat 2 5 |
如果希望了解当前 DB2 的级别和当前操作系统的信息,可以输入以下命令:
db2pd –version –osinfo |
如果希望监控表的重组(reorg)状态,在 v8.2 之前可以使用 GET SNAPSHOT FOR TABLES ON 数据库名
检查重组状态。使用 db2pd 工具,执行下面的命令就能获得重组状态:
db2pd –db sample –reorg file=reorg.txt |
s
以下文章点击率最高
Loading…