3

MySql では、個々のクエリのパフォーマンスをテストし、クエリ キャッシュを排除するために、select ステートメントで sql_no_cache 修飾子を使用できます。

select sql_no_cache * from Foo;

Microsoft SQL Server に同様のクエリごとのオプションはありますか? 使用に関する多くの投稿を見てきました:

CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

しかし、これはやり過ぎのように思われ、キャッシュされていない同じクエリのパフォーマンスを MySql と比較しようとすると、SQL Server が不利になる可能性があります。

4

1 に答える 1

2

キャッシュから特定のクエリプランを削除するには、クエリのプランハンドルを取得します。

SELECT
    t.text,
    s.plan_handle,
    s.creation_time,
    s.last_execution_time
FROM sys.dm_exec_query_stats as s
CROSS APPLY sys.dm_exec_sql_text (s.sql_handle) as t
-- optionally filter based on query text
-- WHERE t.text LIKE '%blah%';

SQL Server 2008+では、プランハンドルを渡してDBCC FREEPROCCACHE、キャッシュから特定のプランを削除できます。

DBCC FREEPROCCACHE (<plan_handle>);
于 2013-01-11T21:47:40.033 に答える