none
キャッシュの有効時間 RRS feed

  • 質問

  • ----------------------------------
    Windows XP Proffesional SP3
    MEM:2GB
    SQL Server 2008 SP1
    ----------------------------------
    を使用しています。

    2つの各500万件程度のテーブルを結合し
    1つの5万件程度の結果を求めています。
    1回目の実行時間に比べて2回目の実行時間が非常に短いのは
    キャッシュに格納されヒットしている為だと思われますが、
    5分後に2回目を実行すると1回目と同程度の時間が掛ります。

    このキャッシュの有効時間は設定できるのでしょうか?
    2010年1月20日 6:14

回答

  • ご指導ありがとうございます。

    時間管理ではなくメモリー不足により削除されるとの事ですので、
    メモリー拡張を行った上で再度検証してみます。

    ありがとうございました。
    • 回答としてマーク あさお 2010年1月25日 2:02
    2010年1月21日 2:09

すべての返信

  • こんにちは、nagino です。

    クエリを実行した場合にキャッシュする内容としては、とりあえず実行プランとデータを考えれば良いかと思います。

    実行プランに関しては、下記の「プロシージャキャッシュからの実行プランの削除」にあるとおり、キャッシュ用のメモリがある限りキャッシュし続けます。
    メモリが不足すればキャッシュは削除されます。
    有効時間による管理はしていません。

    データに関しては、下記の「バッファ管理の仕組み」にあるとおり、他のデータを読み取るなどのためにバッファ領域が必要になるまではキャッシュし続けます。
    メモリが不足すればキャッシュは削除されます。(変更がある場合は書き込みも行われます)
    有効時間による管理はしていません。

    思ったようなパフォーマンスが出ない場合は、メモリ不足や設定の不備などが考えられますので(キャッシュの管理に介入しようとするのではなく)、原因の切り分けをして適切な対応をされるのがお勧めです。


    MCITP(Database Developer/Database Administrator)
    2010年1月20日 11:07
  • ご指導ありがとうございます。

    時間管理ではなくメモリー不足により削除されるとの事ですので、
    メモリー拡張を行った上で再度検証してみます。

    ありがとうございました。
    • 回答としてマーク あさお 2010年1月25日 2:02
    2010年1月21日 2:09