パフォーマンスチューニング9つの技 ~はじめに~

PostgreSQLを利用する上で、CPU、メモリー、ディスクなどのリソースを有効に使うためには、パフォーマンスチューニングが必要になります。実際に、PostgreSQLのパフォーマンスを引き出すための手法は数多くありますが、その手法を整理するといくつかの観点が見えてきます。これから、「パフォーマンスチューニング9つの技」と題して、実際の業務において押さえておくべきパフォーマンスチューニングの手法について、「書き」「探し」「基盤」の3つの観点に分けて解説していきます。以下に、「パフォーマンスチューニング9つの技」の全体概要を示します。

書き

書込み保証を見極める
  • 各種バッファーのサイズや、チェックポイント処理などのディスク書き込みタイミングを調整する
インデックスの更新を抑止する
  • 大量データ挿入時は一時的にインデックスを外す
  • 更新頻度が高い場合はFILLFACTORやHOTを利用する
大量データは一括 / 並列で格納する
  • COPYコマンドの利用や多重実行でデータを格納する

探し

インデックスを有効活用する
  • ソート処理をインデックススキャンで代用する
  • 検索方式Index Only Scanを活用する
  • 複合インデックスは絞り込める順に記述する
  • OR条件を工夫する
  • 式インデックスを利用する
実行計画を評価し制御する
  • 実行計画を見る
  • 実行計画を制御する
  • 統計情報を固定化する
クライアント側で無駄を削減する
  • プリペアド文、コネクションプーリング、ユーザー定義関数を利用する
  • フェッチサイズを調整する

基盤

データを整理し、統計情報を最新化する
  • VACUUMで不要領域を再利用可能にする
  • REINDEXで不要領域を削除する
  • ANALYZEで統計情報を最新化する
  • VACUUM FREEZEでトランザクションIDを凍結状態にする
パラメーター調整で高速化する
  • 作業メモリーサイズ、遺伝的問合せ最適化、プランナー推定コスト、並列処理、コンフリクト軽減のためのパラメーターを調整する
資源分割とロック回避で高速化する
  • テーブルスペースやパーティショニングを活用する
  • ロック競合を軽減する

今回は、これらの説明に入る前に、パフォーマンスチューニングの考え方について説明します。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。

本記事の構成

本記事「パフォーマンスチューニング9つの技」は以下4つの記事から構成されています。他の記事も併せてご覧ください。

1. パフォーマンスチューニングとは

パフォーマンスチューニングとは、システムを構成するCPU、メモリー、ディスク、ネットワークなどのハードウェア、OS資源などのリソースをより有効に利用できるよう調整し、システムのパフォーマンスを引き出すことです。データベースにおいては、クライアントからの大量接続や、同一資源への同時アクセス、あらゆる障害に対応するためのデータ保証など、多くの機構を備えています。これらの機構をバランスよく、効率的に動作するよう正しく調整することで、SQLを高速に処理し、レスポンス向上につなげることができます。そのためには、PostgreSQLのアーキテクチャーを理解すること、および、ボトルネックが発生する箇所を押さえておくことが重要です。以下に、PostgreSQLの基本的なアーキテクチャーと、ボトルネックが発生する代表的な箇所を示します。

Loading component...

なお、「PostgreSQLのアーキテクチャー概要」にパフォーマンスチューニングを知る上で必要な情報が掲載されていますので、必要に応じて参照してください。

本記事においては、パフォーマンスチューニングを行う上で考慮すべき観点を以下の3つに分類し説明していきます。

Loading component...

2. パフォーマンスチューニングの考え方

ここでは、パフォーマンスチューニングについて、実施するタイミングと基本的な流れについて説明します。

Loading component...

Loading component...

Loading component...

Loading component...

今回は、PostgreSQLのパフォーマンスチューニングの考え方を述べました。次回から、具体的なパフォーマンスチューニングの手法について説明します。

2021年3月12日公開

こちらもおすすめ

Loading component...

Loading component...

富士通のソフトウェア公式チャンネル(YouTube)

富士通のミドルウェア製品のご紹介や各種イベント・セミナーの講演内容、デモンストレーションなどの動画をご覧いただけます。

Loading component...

Loading component...