連載
これがDB2パフォーマンス向上の9カ条だ:DB2チューニング・ベストプラクティス(1)(2/3 ページ)
本連載はDB2 UDB V8のシステム管理者、およびアプリケーション開発者のために、パフォーマンス・チューニングに必要な技法を紹介する。記事の原文はIBM developerWorksで2004年4月に公開された「Best practices for tuning DB2 UDB v8.1 and its databases」で、DB2の設計、配置、構成、SQL、運用管理、モニタリングといった内容を、実践的な操作を中心に解説している。想定する読者はDB2データベース管理の中級レベルのスキルを持っているユーザーである。スクリーン・ショットなど一部のコンテンツは、日本語版のものに差し替えている。(編集局)
パフォーマンス向上のための9カ条
次に示すのは、データベースから最大のパフォーマンスを引き出すための9項目です。通常、最大パフォーマンスの約90%は、可能な構成変更の約10%を使用することで達成されます。以下のそれぞれの項目について、本連載で取り上げる各セクション(カッコ内に連載回とセクション名を記してあります)で詳しく説明します。
- 十分な数のディスクを確保します(CPUごとに6〜10個程度から始めるとよいでしょう)。それぞれの表スペースのコンテナは、使用可能なすべてのディスクにまたがるようにします。SYSCATSPACEや少数の表を含む表スペースなどは、すべてのディスクに分散させる必要はありませんが、大きなユーザー表や一時表を含んでいる表スペースの場合はそのようにします(第2回 表スペースの作成)。
- バッファ・プールが、使用可能メモリの約75%(OLTPの場合)または約50%(OLAPの場合)を使用するようにします(第2回 バッファ・プールの作成)。
- すべての表(システム・カタログ表を含む)に対してRunstatsを実行します(第7回 継続的なメンテナンス/Runstats)。「設計アドバイザー」を使用して、SQLワークロードに対する索引の推奨や検討を行います(第6回 詳細なSQL分析/設計アドバイザー)。
- 「構成アドバイザー」を使用して、アプリケーション環境に合わせてデータベース・マネージャーやデータベースを構成します(第1回 構成アドバイザー)。
- ロギングは、独立した高速ディスク上で行います。これは、データベース構成パラメータのNEWLOGPATHで指定します(第5回 データベースの作成/実験)。
- 頻繁にコミットすることで、並行性を高めることができます(第6回 詳細なSQL分析/SQLステートメントのチューニング)。
- ソート・オーバーフローを避けるために、SORTHEAPを大きくします(第5回 DBMとDBの構成)。
- 表スペース・タイプは、システム・カタログ表スペースとシステム一時表スペースについてはSMS(System-managed Space:システム管理スペース)注 とし、それ以外についてはDMS(Database-Managed Space:データベース管理スペース)ロー(デバイス)またはDMSファイルとします。SMS表スペースの場合、db2empfaを実行して、複数ページ・ファイル割り振りを可能にします。これにより、SMS表スペースは一度に(1ページではなく)1つのエクステントを拡張できるようになり、大量の挿入操作やディスクを大量に使用するソートを高速化することができます(第2回 表スペースの作成)。(編集局注:SMSに続くカッコ内で当初「Storage Management Subsystem:ストレージ管理サブシステム」と記述しておりましたが、これは誤りでした。正しくは「System-managed Space:システム管理スペース」です。2004年7月29日修正)注とし、それ以外についてはDMS(Database-Managed Space:データベース管理スペース)ロー(デバイス)またはDMSファイルとします。SMS表スペースの場合、db2empfaを実行して、複数ページ・ファイル割り振りを可能にします。これにより、SMS表スペースは一度に(1ページではなく)1つのエクステントを拡張できるようになり、大量の挿入操作やディスクを大量に使用するソートを高速化することができます(第2回 表スペースの作成)。
(編集局注:SMSに続くカッコ内で当初「Storage Management ubsystem:ストレージ管理サブシステム」と記述しておりましたが、これは誤りでした。正しくは「System-managed Space:システム管理スペース」です。2004年7月29日修正) - 繰り返されるステートメントに対しては、パラメーター・マーカーを使用します(第6回 詳細なSQL分析/SQLステートメントのチューニング)。
編集部:本連載の各回で扱うテーマを以下に示します。上述のカッコ内に示したセクション名で下記の各テーマ名に現れないものは、サブテーマとして扱われているためです。
連載回 | テーマ |
---|---|
第1回 | はじめに |
パフォーマンス向上のための9カ条 | |
データベースの作成 | |
第2回 | バッファ・プールの作成 |
表スペースの作成 | |
表の作成 | |
第3回 | 索引の作成 |
プロファイル・レジストリーの構成 | |
ランタイム・エラーを避けるための構成 | |
第4回 | パフォーマンス向上のためのスナップショット・モニタ(前編) |
第5回 | パフォーマンス向上のためのスナップショット・モニタ(後編) |
第6回 | 詳細なSQL分析 |
第7回 | 継続的なメンテナンス |
データベース・パーティショニング・フィーチャー(DPF)のパフォーマンス | |
第8回 | 使用率とボトルネック |
情報源 |
Copyright © ITmedia, Inc. All Rights Reserved.