Azure仮想マシンでホストされているServerlという名前のサーバーがあります。 Server1には以下が含まれます。
SQL Server 2016 Enterpriseの1つのインスタンス

10データベース

500のストアドプロシージャ

Server1でホストされているDatabaselという名前のデータベースがあります。
Database1にはWebアプリケーションから動的に実行される100のクエリが含まれています。
Database1のプロシージャ・キャッシュからデータを削除する予定です。
あなたには次の要件があります。
Database1への変更は、Server1でホストされている他のデータベースに影響してはなりません

Database1を変更しても、他のデータベースに格納されているクエリのパフォーマンスに影響してはなりません。

ソリューションは、管理作業を最小限に抑える必要があります。

可能であれば、プロシージャ・キャッシュからデータをすばやく削除する必要があります。
あなたは何をするべきか?
正解:B
説明/参照:
Explanation:
データベースのコンテキストで、ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE CACHEを実行する必要があります。このステートメントを使用すると、SQL Server 2016のインスタンスにインストールされている他のデータベースに影響を与えずに、データベースの設定を変更できます。
間違った回答:
A:DBCC FREEPROCCACHEは実行しないでください。 DBCC FREEPROCCACHEはプランキャッシュ全体を消去し、すべてのデータベースに影響します。 DBCC FREEPROCCACHEのplan_handle引数を使用することで、キャッシュから単一のプランを削除することは可能ですが、Databaselに関連するすべてのプランを特定する必要があります。
C:DBCC DROPCLEANBUFFERSを実行しないでください。 DBCC DROPCLEANBUFFERSは、クリーンページをバッファキャッシュから削除します。 ColumnstoreページはColumnstoreキャッシュから削除されます。
D:各ストアド・プロシージャ定義を反復し、WITH RECOMPILEを定義に追加するスクリプトを作成しないでください。プロシージャが呼び出されるたびに、プロシージャが再コンパイルされ、サーバーのパフォーマンスが低下する可能性があります。
このアプローチでは、スクリプトを作成するための管理上の労力が必要になります。さらに、Webアプリケーションからいくつかの呼び出しが行われ、スクリプトはこれらの呼び出しを制御しません。以前のバージョンのSQL Serverでは、ALTER DATABASEステートメントが使用可能になる前に、このオプションは他のデータベースに影響を与えないようにする方法でした。
参考文献:https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-scoped-configuration- transact-sql