2012年6月11日

[pgsql-jp: 41126] Re:パーティショニングについて

佐藤です。

>  お世話になります。NAGAURAと申します。
>
> 現在、Ubuntu10.04 32bit Postgresql 8.4.11環境で、Byteaを含むテーブルのパー
> ティショニングを試しています。
>
> キーとなるデータは数字型で年月日+1からの連番で、キーを50で割った余り0〜49の

> テーブルを使うハッシュによる
> パーティショニングを行ってみましたが、SELECT時に全てのテーブルにアクセスして
> いる様でパーティショニングが
> 動作している様に見えない状態で困惑しています。
>
> どなたかアドバイスをお願い致します。
>
> ※データの分割方法として年月日から始まるキーですので、レンジパーティショニン
> グも考慮しましたが、メンテナンス
>  性を考慮するとハッシュパーティショニングを使うべきかと思ってます。

おそらく CHECK 制約が複雑であるためです。

以下に書いてあるように、「列名 = 値」といったような単純な CHECK 制約で
ないと、制約による除外は機能しません。

パーティション制約を簡単にしておいてください。そうしないとプランナは、
パーティションを使う必要がないことを立証できません。前述の例で示した
とおり、リスト分割のために簡単な等号条件を使用してください。また範囲
分割のために簡単な範囲テストを使用してください。手っ取り早い良い方法
は、パーティショニングの制約がパーティション列と B-tree インデックス
作成可能な演算子を用いた定数の比較のみを含んでいることです。

http://www.postgresql.jp/document/8.4/html/ddl-partitioning.html#DDL-PARTITIONING-CAVEATS


----
Tomoaki Sato <sato@xxxxx>
SRA OSS, Inc. Japan


投稿者 xml-rpc : 2012年6月11日 18:37
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110822
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。