0

次の質問があります。
私は2つの質問を1つずつ実行しています。あなたが唯一の違いはYX部品の間で見ることができるようにSQL Server 2012でのキャッシュとクエリの実行 - このキャッシュの使用方法と使用方法を教えてください。

SELECT SomeColumn 
FROM 
SomeFunction(id) 
WHERE 
A and B and C 
CROSS JOIN 
Y 

まず:

SELECT SomeColumn 
FROM 
SomeFunction(id) 
WHERE 
A and B and C 
CROSS JOIN 
X 

第二にこれらの二つの質問は、同じ "副選択" を持っています。クエリの最初の部分はまったく同じです。
キャッシュするSQLServerをカウントできますか?2番目のクエリは最初より速くなりますか?質問は次のとおりです。 SQL Serverのキャッシュをいつ、どのようにカウントできますか?私は手動でそれを行うことができ、私はまず

SELECT SomeColumn 
FROM 
SomeFunction(id) 

をフェッチし、コンテキストはMyBatisの春ブートですが、それは、私が思うに、ここでは関係ありません。最初と2番目のクエリで

をそれを使用する意味します。

+1

..おおよそ

あまり使用されるページに変換され、LRUアルゴリズムに基づいて、メモリからキャッシュされたページを追い出し、私はあなたがいると思いますここで間違った質問をしています。クエリは*あなたのために十分速く実行されていますか?そうであれば、それが特定のキャッシュか、それが意味する他の手段かどうかは重要ですか?もしそうでなければ、キャッシングに焦点を当てるのではなく、スピードを上げるためのメカニズムを見てはいけませんか? (クエリが* valid *であっても、好ましくはいくつかのサンプルデータでも有効です* –

+0

実行計画を有効にして実行時間の結果を確認してみませんか? – tire0011

答えて

0

ページ(8キロバイト)は、特定のテーブルに属するSQLServer.Pagesにおけるストレージの基本単位は、論理IDの下に格納されている..です

あなたが発行するときに、クエリ

select * from table where id=2 

ましょう下回っ言います2つのページにID = 2が格納されていると仮定します.SQLが最初にチェックします。キャッシュに入っていない場合、キャッシュされて読み込まれます。

これらの2つのページは、メモリの圧力がない限り長くしてください。メモリが不足すると、SQLServerが起動しますそうあなたの次のクエリは、ディスクから、またはメモリからデータを読み出すことが可能性があるが

+0

チャンスがあるので保証はありません。だから私はSQLerverでキャッシングするべきではない –

+0

あなたはこれを無視して、クエリが遅い – TheGameiswar

関連する問題