7

OLTP アプリケーション用に Postgres のパフォーマンスを調整および最適化する方法に関するオンライン ガイドや印刷ガイドをたくさん見つけましたが、Data Warehousing アプリケーションに固有の種類のものは見つかりませんでした。ワークロードの種類には非常に多くの違いがあるため、データベースの管理方法と調整方法にもいくつかの違いがあるはずです。

私自身のいくつか:

  • 私は DDL 側から、インデックスをもっと自由に使用していることに気付きました。通常、1 日に 1 回の挿入しか気にせず、インデックスの再構築でバッチ挿入を実行できるからです。

  • 私は通常、結合を高速化するために複数の自然キーを持つデータに対して整数代理キーを使用します

  • 私は通常、事前に作成された日付操作 (暦日ではなく会計日、会計年度月、週の開始日など) を備えた非常に包括的な日付テーブルを定義して維持し、select ステートメントで関数を使用するのではなく、自由に使用します。および where ステートメント。これは通常、CPU バウンドの集計クエリ中に役立ちます。

メモリ管理やその他のデータベース設定に関する情報が得られることを期待していましたが、Postgres ベースのデータ ウェアハウジングに固有の有用なベスト プラクティスがあれば喜んでお知らせします。

4

2 に答える 2

1

メモリー管理の観点から見た場合の最大の違いの 1 つは、OLAP 環境の場合は当てはまらないのに対し、作業中の OLTP セットをメモリーに保持することをしばしば期待できることです。さらに、結合されたセットが大きくなることがよくあります。これは、より高い work_mem 設定が非常に役立つことを意味し、テーブルが非正規化されている範囲で、それ以外の場合よりも少し高く work_mem をプッシュできることを意味します。shared_buffers に関する私のアドバイスが変更されるかどうかはわかりませんが (各ステップでパフォーマンスをテストするために、低く始めて増やすことを好みます)、任意のサイズのセットについてレポートを作成する場合は、work_mem を増やす必要があることは確かです。

于 2013-03-22T02:14:54.393 に答える