/* 部分SQL */ --添加主鍵 alter TABLE TABLE_SCHEMA.TABLE_NAME add constraint PK_TABLE_NAME primary key(COL1 ,COL2); --收集統計信息runsats db2 "runstats on table tbschema.tbname with distribution on all columns and indexes all" /* 以下為數據庫監控部分 */ --監控最耗費用戶CPU的時間的動態SQL select STMT_TEXT from sysibmadm.snapdyn_sql order by total_usr_cpu_time desc fetch first 5 rows only --監控訪問熱點對象執行次數最多的SQL,<TableName>指熱點表名 select STMT_TEXT,num_executions from sysibmadm.snapdyn_sql where stmt like '%<TableNameForHotIndex>%' order by num_executions desc fetch first 5 rows only --監控訪問熱點對象執行次數最多的SQL,<TableNameForHotIndex>指熱點索引 select STMT_TEXT,num_executions from sysibmadm.snapdyn_sql where stmt like '%<TableNameForHotIndex>%' order by pool_index_p_reads desc fetch first 5 rows only --監控運行時間最長的SQL select * from sysibmadm.long_running_sql order by elapsed_time_min desc fetch first 1 rows only --監控運行次數最多的SQL select stmt_text,num_executions from sysibmadm.top_dynamic_sql order by num_executions desc fetch first 5 row only --監控排序次數最多的SQL select stmt_text,stmt_sorts from sysibmadm.top_dynamic_sql order by stmt_sorts desc fetch first 5 row only --日志寫入速度 db2 "select (log_write_time_ns/1000000)/num_log_write_io as average_log_wirte_ms from sysibmadm.snapdb" --鎖升級及死鎖 db2 "select lock_escals,deadlocks from sysibmadm.snapdb" --獲取所有管理視圖 db2 list tables for schema SYSIBMADM --查看表結構 db2look -d test -e -nofed -t test.test1 | awk '/CREATE TABLE/,/;/{print}' --查看執行計划 db2 connect to test db2 "explain plan for select distinct contno from table_schema.table_name" db2exfmt -d test -1 -o /tmp/a.exfmt more /tmp/a.exfmt --修改表名 RENAME TABLE_SCHEMA.OLD_TABLENAME TO NEW_TABLENAME; --修改表字段 ALTER TABLE TABLE_SCHEMA.OLD_TABLENAME ALTER COLUMNS SET DATA TYPE VARCHAR(10); --修改字段名稱【DB2不允許修改字段名稱,但是可以刪除后新增字段】 ALTER TABLE TABLE_SCHEMA.TABLE_NAME DROP COLUMNS; ALTER TABLE TABLE_SCHEMA.TABLE_NAME ADD COLUMNS VARCHAR(10);
參考資料:
DB2設計、管理與性能優化藝術 --王飛鵬 、 李玉明 、 朱志輝 、 王富國 等 著 胡偉民 校