主キーにシーケンスを使っている表へのINSERTのチューニング方法

本日は、主キーにシーケンス(sequence)を使っている表へのINSERTのチューニング方法を紹介します。

基本的なINSERT文のチューニング方法は既に紹介しています。
INSERT文のSQLチューニング方法

また、大量INSERT文の処理についてもチューニング方法は紹介しています。
たまに遅い&大量のINSERT処理のチューニング方法

今回は、もっと限定的で、主キーにシーケンスを使っている場合です。
シーケンスは便利で、連続した値を採番するのに適しているので使っている方も多いと思います。

ただ、そのまま使っているよりも、少しパラメータを変えてあげるともう少し速くなります。

それは、シーケンスキャッシュの値です。
シーケンスキャッシュとは、ORACLEデータベース側で、既に採番した値をメモリにいくらかもっておく機能になります。
シーケンスを使ったINSERT文を大量に実行する場合などに効果が出てきます。

通常デフォルトの値は、20だったと思います。
この値を少し高めに設定しておくと、採番する時間が少しだけ短縮されることになります。

大体1000くらいに設定していることが多いようですね。
実際に、5000とか10000とかにしてもあまり効果は変わりませんでした。メモリを余分に食ってしまうので1000くらいで調度いいのでしょう。

どれくらい効果が出るかは、実行する処理のよって変わってくるので、まずは試してみることをオススメします。

◆シーケンスキャッシュを設定方法

create sequence table1_seq cache 1000
;

Oracle SQLチューニング パフォーマンス改善と事前対策に役立つ (DB selection) [ 加藤祥平 ]

価格:2,808円
(2018/11/19 19:23時点)

主キーにシーケンスを使っている表へのINSERTのチューニング方法” に対して1件のコメントがあります。

この投稿はコメントできません。