Oracleの「ファンクション・インデックス」について2015年3月10日プログラミングOracleSQLTweetどうも。採用担当兼エンジニアの小田です。今日は、最近現場で便利だなと思ったOracleの「ファンクション・インデックス」を紹介します。※「ファンクション・インデックス」はOracle8iからある機能だそうです。■SELECT文1仮に、キーNo.の10文字目から3文字が検索条件となっているようなテーブルを検索する場合、以下のようなSELECT文を実行しますよね。FULL」となります。■ファンクション・インデックスの作成こういう場合に便利なのが、「ファンクション・インデックス」です。3));ファンクション・インデックス作成後、上記のSELECT文1を実行してみると、作成したインデックス(SAMPLE_INDEX01)を使用していることが確認できます。このファンクション・インデックスが便利なのはOracle独自の関数だけでなく、自分で作成した関数も指定できるところです。税抜の金額のみを保持している項目「AMOUNT」があるとして、消費税込の金額を条件に指定してSELECT文を作成したい場合、まず、関数(Function)を作成します。上記同様にファンクション・インデックスを作成します。);準備が整いました。■SELECT文2これでSELECT文2を実行すると、無事作成したインデックス(SAMPLE_INDEX02)が使用されます。108000;既に存在しているテーブルに項目を追加すると、プログラムの修正やデータ移行などが面倒なことが多いですが、このファンクション・インデックスを使えば、各段に効率的に検索を行うことができます。■注意点なおファンクション・インデックス作成時の注意点を挙げておきます。・ファンクション・インデックス作成後は、必ず統計情報の収集(ANALYZE)を行う。・作成したFunctionをファンクション・インデックスに使用する場合、必ず「DETERMINISTIC」を指定。・「QUERY_REWRITE_ENABLED」パラメータは「TRUE」。<パラメータ名>」のコマンドで。いかがでしたか?次回もお楽しみに。それではまたお会いしましょう。Expressを利用しました。次の記事へ株式会社ライズウィル人に、企業に、社会に貢献するサービスを提供するITソリューション企業の株式会社ライズウィルです。ライズウィルブログでは、システム開発、Web制作、デザインなどのITに関するためになる情報や、社内のイベント、お知らせなどを掲載していきます。求める人材Web系、もしくはオープン系の開発実務1年以上の経験をお持ちの方。