"CREATE DATABASE MYDB ON 'D:¥db2data','E:¥db2data¥' DBPATH ON 'C:' USER TABLESPACE MANAGED BY AUTOMATIC STORAGE INITIALSIZE 300 M INCREASESIZE 100 M MAXSIZE 10 G" 初期サイズと増加サイズ、最大サイズを指定して表スペースを追加 > db2 "CREATE TABLESPACE MYTS2 INITIALSIZE 100 M INCREASESIZE 10 M MAXSIZE 1 G" ※サイズの指定は数字と単位 の間に空白が必用です(300M ではなく、300 M) ※サイズを指定しなかった場合、 初期サイズ30MB,自動増加 100MB、最大10GBで作成
"UPDATE DB CFG FOR MYDB USING LOGPRIMARY 10" db2 "UPDATE DB CFG FOR MYDB USING LOGFILSZ 10000" db2 "UPDATE DB CFG FOR MYDB USING NEWLOGPATH F:¥db2log" db2 "UPDATE DB CFG FOR MYDB USING LOGARCMETH1 DISK:G:¥db2arclog" db2 "BACKUP DB mydb TO G:¥db2backup" db2set DB2_PARALLEL_IO=* (※ストレージパスがRAIDデバイスの場合のみ) db2 "CREATE DATABASE MYDB ON D:¥db2data1,E:¥db2data2 DBPATH ON C: USING CODESET UTF-8 TERRITORY JP"
LIST HISTORYコマンドやSYSIBMADM.DB_HISTORY表で閲覧可能 >db2 "LIST HISTORY BACKUP ALL FOR MYDB" – PRUNE HISTORYコマンドで古い履歴を削除可能 AUTO_DEL_REC_OBJ – ONにすると、PRUNE HISTORY時に関連するオブジェクトが削除可能に > db2 "UPDATE DB CFG FOR MYDB USING AUTO_DEL_REC_OBJ ON" 以下のように簡単運用が可能 – 自動実行シェルなどで、毎日定期的にBACKUPコマンドを実行 – 一ヶ月に一回などのタイミングでPRUNE HISTORY ... AND DELETEを実行して 履歴とともに古いデータを消す 例) > db2 "PRUNE HISTORY 20110219223044 AND DELETE"
F D C 通常のインデックス クラスターインデックス インデックスの順序とデータの 配置順が一致するように配置さ れている E F D C クラスターインデックスを作成することで、データの並び崩れにくくなる CREATE INDEX idx2 ON tab(c) CLUSTER CREATE INDEX idx1 ON tab(c)
• RUNSTATS ON TABLE ... WITH DISTRIBUTION AND INDEXES ALL – 例②すべての列について統計を収集し、c1列についてLIKE統計を収集する • RUNSTATS ON TABLE ... ON ALL COLUMNS AND COLUMNS (c1 LIKE STATISTICS) – 例③約10%のデータをサンプルとして使用して統計を収集する • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE SYSTEM(10) • RUNSTATS ON TABLE ... ON ALL COLUMNS TABLESAMPLE BERNOULLI(10) RUNSTATS ON TABLE スキーマ名.表名 [ON ALL COLUMNS] ▪参考文献 「DB2 UDBバージョン8.2のRUNSTATS」(サンプル多数で分かりやすい) http://ibm.com/jp/domino01/mkt/dminfo.nsf/doc/002B4A0C 多くの場合、この 基本形でOK データに「偏り」がある場合、 分散統計を試してください
• SYSCAT.TABLESのSTATISTICS_PROFILE列で確認可能 >db2 "RUNSTATS ON TABLE SIM.EMPLOYEE WITH DISTRIBUTION AND INDEXES ALL SET PROFILE" >db2 "SELECT VARCHAR(TABNAME,10),VARCHAR(STATISTICS_PROFILE,100) FROM SYSCAT.TABLES WHERE TABNAME = 'EMPLOYEE' AND TABSCHEMA='SIM'" 1 2 ---------- ---------------------------------------------------------------------------------------------------- EMPLOYEE RUNSTATS ON TABLE "SIM"."EMPLOYEE" ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND INDEXES ALL USE PROFILEを付けて実行すると、セットしたオプションで実行される > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE USE PROFILE" NONE PROFILEを付けて実行すると、プロファイルを削除 > db2 "RUNSTATS ON TABLE SIM.EMPLOYEE UNSET PROFILE"