db get snapshot for tables on DBNAME
在发出第一个命令以后确定发生了多少个事务(通过取Commit statements attempted和Rollback statements attempted之和 请参阅 技巧 )
在发出第二个命令以后将读取的行数除以事务数(RowsPerTX)在每个事务中OLTP 应用程序通常应该从每个表读取 到 行如果您发现对每个事务有成百上千的行正被读取那么发生了扫描操作也许需要创建索引(有时以分布和详细的索引来运行 runstats 也可提供了一个解决的办法)
get snapshot for tables on DBNAME的样本输出如下
Snapshot timestamp =
::
Database name= DGIDB
Database path= /fs/inst/inst/NODE/SQL/
Input database alias= DGIDB
Number of accessed tables=
Table List
Table Schema= INST
Table Name= DGI_
SALES_ LOGS_TB
Table Type= User
Rows Written=
Rows Read=
Overflows=
Page Reorgs=
Overflows 的数量很大就可能意味着您需要重组表当由于更改了行的宽度从而 DB 必须在一个不够理想的页上定位一个行时就会发生溢出
八表空间分析
表空间快照对理解访问什么数据以及如何访问是极其有价值的要得到一个表空间快照请发出以下命令
db get snapshot for tablespaces on DBNAME
对每个表空间回答以下问题
平均读取时间(ms)是多少?
[] [] [] [] [] [] [] [] []