オレンジみかん前回に引き続きOracle11gの隠れた新機能のひとつの仮想列について検証を行っていきます。はじめに仮想列について少しおさらいをしておきましょう。■前回のおさらい仮想列とは、テーブルにあるカラムに対して直接計算結果を表示専用のカラムとして利用出来る機能です(従来のVIEWに計算式を埋め込むことに相当)。仮想列は対象カラムに対してINDEXを作成したり、仮想列をパーティション化することも可能です。今回は仮想列でパーティション化する場合(以降:仮想列パーティションといいます)に注目してメリットと注意事項について検証して行きたいと思います。64bitそれでは、仮想列パーティションを作成して「通常の表+VIEW」の利用と「仮想列パーティション表」のレスポンスの違いについて確認してみましょう。V_ADDRESS)と仮想列パーティション表(VTP_ADDRESS)を使って940,000件のデータ(20,000件×47都道府県)をINSERTおよびSELECTしてみます。/PL/SQLプロシージャが正常に完了しました。/PL/SQLプロシージャが正常に完了しました。(25)|00:00:02|-----------------------------------------------------------------------「通常の表およびビュー」と「仮想列パーティション」を比較してみると、SELECT処理は仮想パーティションの方が実行計画のコストが1/5になりました。これは、ビュー列を検索キーにしたSELECT処理の場合、ビュー列がフルスキャンになったためであり、予想通りの結果です。INSERT処理の場合では仮想列パーティションの方が通常の表と比べるとより多くの仮想列実行時間が必要になるようです。仮想列パーティションに対するINSERT処理の実行時間が長くなる原因は何でしょうか?SQLTraceを実行して確認してみましょう。10046’を使用します。us)SQLTraceのquery項目に注目して比較すると、仮想パーティションでのINSERT文の実行ではquery項目の数値が多いことから、フェッチ・コールが頻繁に実行されていることが推察されます。従って、仮想パーティションでは通常の表の場合と比べると解析・実行回数が増加していたため、実行時間が多くかかってしまうようです。■まとめ仮想列パーティションは今までVIEWで定義したカラムに対して、パーティションを作成することができるため、レスポンス対策の手段として効果があることを改めて確認出来ました。処理が増加するため、検索処理と挿入処理を高速に行いたい場合のトランザクション系処理では利用には注意が必要です。この様に仮想列パーティションの特徴を踏まえると、「頻繁に書き込みは無いが大量データの中から高速にデータを検索したいというシステム」に生かせる機能として活用出来る機能です。仮想列パーティションの具体的な活用例としてはDWHなどのデータ分析などに有効活用出来そうです。機能について検証します。reserved.トップページ企業概要プライバシーポリシ。