4 Replies Latest reply: Dec 6, 2012 12:40 AM by keiji.k RSS

    結果キャッシュと11g以前のキャッシュの差異について

    keiji.k
      いつも参考にさせていただいております。

      初歩的な事で申し訳ございませんが、結果キャッシュ機能について
      不明点がありますので、ご教示して頂けないでしょうか?

      結果キャッシュについて調べている時に以下のページを発見し読んでいる時に
      「11g以前はブロックデータのすべてをキャッシュしていた」とありました。

      -----------------------------------------------------------------------------------------------------
      >問い合わせ結果だけをキャッシュする「リザルトキャッシュ」という機能だ。
      >11g以前は、クエリの実行時に読み出したブロックのデータをすべてキャッシュしていたが、
      >11gではユーザーに返した結果だけをキャッシュできるようになった

      http://www.atmarkit.co.jp/news/201011/09/oracle.html
      ◆ @IT 11gでこそ味わえるOracleのうまみ より引用
      -----------------------------------------------------------------------------------------------------

      つまりは11g以前は結果以外のブロックデータもキャッシュしていたと読み取ることができますが、
      結果以外のデータとは何を指すのでしょうか?


      よろしくお願い致します。
        • 1. Re: 結果キャッシュと11g以前のキャッシュの差異について
          asahide
          >クエリの実行時に読み出したブロック

          とあるように、実行時に読み込まれたブロックすべてをキャッシュしていた、という事ではないでしょうか。
          例えばデータブロックのサイズが8KBなら従来はクエリで読み込まれたブロックの全て、つまり「8KB*ブロック数」をキャッシュしていたが、結果だけをキャッシュするようになったので効率的だ、という事で。。。
          • 2. Re: 結果キャッシュと11g以前のキャッシュの差異について
            keiji.k
            >ash_0317 様
            ご返信ありがとうございます。
            ash_0317 wrote:
            例えばデータブロックのサイズが8KBなら従来はクエリで読み込まれたブロックの全て、つまり「8KB*ブロック数」をキャッシュしていたが、結果だけをキャッシュするようになったので効率的だ、という事で。。。
            なるほど・・・
            「クエリの実行時に読み出したブロックのデータをすべてキャッシュ」=結果の他に何かデータを保持しているという認識だったので
            ブロック単位での読み出し時といった発想ができていませんでした。

            その発想を持って再度記事を読むと、合点がいきます。
            以下は、イメージですがこのような事が結果サマリと呼ばれている機能であっていますか?

            <あるSQLで読み込まれたデータブロック>
            |□□□□□□■■|■■■□□□□□|
            ※□ : 1KBブロック
             ■ : 必要な結果データ

              ◎11g以前にキャッシュしていたデータ
              □□□□□□■■■■■□□□□□   ・・・ 16KB
              ※結果以外のデータもキャッシュしてしまっている

              ◎結果キャッシュ
              ■■■■■  ・・・ 5KB
              ※結果のみをキャッシュ
            • 3. Re: 結果キャッシュと11g以前のキャッシュの差異について
              asahide
              イメージはあっていると思います。


              実際には1kB単位ではないので、少し語弊がありますが。。
              • 4. Re: 結果キャッシュと11g以前のキャッシュの差異について
                keiji.k
                >ash_0317 様

                ご返答ありがとうございます。
                1KB単位は、あくまで例の為わかりやすい数字にしてしまいました。
                言葉足らずで申し訳ございません。

                また、結果キャッシュの機能がどのような概要か理解できましたので
                解決済みとさせていただきます。

                ash_0317様、ありがとうございました。