Database JUNKY

MySQL,MariaDBを中心としたブログです

テーブルのインデクスチューニングは、db2advis で

この手のユティリティ、にわかに信じられず、あまり使ったことはなかったのですが、 最近使ってみて、すごく便利だったので、いまさらですが掲載しました。

データベースのチューニングで、一番てっとりばやく効果が高いのが、索引のチューニングで 適用した途端、目で見える効果が期待できます。 インデクスをチューニングする、契機は、単純には、アプリケーションが発行するSQLに対してパフォーマンスが悪い(コストの高い) SQLに対してチューニングするわけなのですが、大規模な、システムの場合、一個一個目で追って、最適と思われるカラムに対して インデクスを張るって作業って結果として、時間がかかり、場合によっては、さらに状況が悪化した、なんてことになりかねませんよね? (実際、私がそんなタイプです)

そこで、DB2のユーティリティーである、db2advisというユティリティなのですが、これ。何をするものかというと。 発行された、SQLをベースにして、どこにインデクスをはるとパフォーマンスがよくなるかアドバイスしてくれるんです。

  1. コマンドの実行例は以下の通りです。 $ db2advis -d sample -s "SELECT * FROM employee" ご利用のデータベース名(ここでは、sample) ご利用のSQL(ここでは、SELECT * FROM employee)
  2. 上記コマンドを実行するだけで、CREATE INDEX文がダンプされます。私の場合は、出力された、CREATE INDEX文を、テキストファイルにコピーしてインデクス名をちゃんとつけてから再度実行しております。