パーティションプルーニング101

ppを機能させる条件

1) パーティションキーをwhere区に含ませる

 

PP適用確認方法

explainを実行しOperation に  :

1) Partition Range All とあればPP無効

2) Partition Range Iterative 

2-1) PStart/PStopに数値があれば静的PP適用

2-2) PStart/PStopにKEYとあれば動的PP適用

 

パーティショニングBP

- 週単位の検索が多いなら週単位のレンジパーティショニングにすると早くなる

- データがメモリに乗りきるレベルのレンジでパーティションを作る。結果ディスクアクセスを減って早くなる

https://www.atmarkit.co.jp/ait/articles/0612/27/news093_4.html

 

データ型の変換

パーティション・プルーニングから最大限のパフォーマンスを得るには、データベースによって変換が必要となるデータ型を指定しないようにしてください。データ型が変換されると、その他の点で静的プルーニングが可能な場合でも、通常は動的プルーニングが行われます。静的プルーニングを利用するSQL文は、動的プルーニングを利用するSQL文よりもパフォーマンスが高くなります。

 

静的パーティション・プルーニング計画を保証するには、パーティション列のデータ型と一致するようにデータ型を明示的に変換する必要があります。

 

f:id:adt9:20200923164949p:plain

関数を使用した場合、その戻り値の型変換を行う場合も同様

f:id:adt9:20200923165614p:plain

 カスタム関数を使用するとPPは行われない

jp.alibabacloud.com

 

 

 

レンジ・パーティション (Range Partition)        

レンジ・パーティションを使用する例として非常に有用と思われるのが日付によるパーティショニングである。 例えば、月毎にパーティション化を行ない、保持期限が終了したらバックアップ媒体などに保管したのち パーティションごとトランケートするなどである。

 

partition keyのフィルタリング条件に関数を使用しない(p.161)

https://www.oracle.com/technetwork/database/partitioningguidev43-2703320.pdf

 

チューニング

https://www.oracle.com/technetwork/jp/ondemand/branch/20120718-indextuning-1703878-ja.pdf

 

  • INリスト条件ほかconditions

blogs.oracle.com