SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine Day 2022

2022年6月28日(火)13:10

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

ここから始めよう SQL Server 2016 新機能

クエリ ストア (後編)

 日本マイクロソフト Business Intelligence & Data Platform サポートの神谷です。前回に引き続きクエリ ストアについて紹介します。前回は、GUIを中心に紹介しましたが、今回はクエリ ストアの設定やクエリ ストア関連のビュー、クエリストアそのものの仕組みを紹介します。

クエリ ストアの設定

 クエリ ストアの有効化および設定は、SQL Server Management Studio GUIではデータベースの「プロパティ」の「クエリ ストア」で、T-SQLではALTER DATABASEにより行うことができます。

ALTER DATABASE AdventureWorks2016 set QUERY_STORE = ON
(
MAX_STORAGE_SIZE_MB=150,
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 180),
MAX_PLANS_PER_QUERY = 50,
DATA_FLUSH_INTERVAL_SECONDS = 1200,
INTERVAL_LENGTH_MINUTES = 15,
OPERATION_MODE = READ_WRITE
)

 クエリ ストアのデータは、クエリ ストアを有効化したデータベースに格納されます。クエリ ストアのために使用を許可する最大サイズはMAX_STORAGE_SIZE_MBで指定します。クエリ ストアデータのサイズが最大サイズ設定に達すると、データの収集は停止し、クエリ ストアは読み取り専用モード(OPERATION_MODE =READ_ONLYと同等の状態)になります。データベース自体が読み取り専用(READ_ONLY)、シングルユーザー(SINGLE_USER)、緊急(EMERGENCY)などの場合にも、クエリ ストアは読み取り専用モードになります。

 クエリ ストアに保存されたデータの保持はCLEANUP_POLICYで指定します。現状では、保持される日数をSTALE_QUERY_THRESHOLD_DAYSで指定することができます。

 SIZE_BASED_CLEANUP_MODEをAUTOに設定すると、クエリ ストアに保存されているデータのサイズがMAX_STORAGE_SIZE_MBで指定した最大サイズの90%に達したら、自動的に古い情報を削除し、80%になったら停止するように設定することができます。

 クエリ ストア内に保持するひとつのクエリの実行プランの最大数をMAX_PLANS_PER_QUERYで制限することもできます。

 この記事の後半で説明しますが、クエリ ストアデータはある程度まではメモリ上にキャッシュされてから、データベースファイルに書き込まれます。その書き込み間隔を指定するオプションがDATA_FLUSH_INTERVAL_SECONDSです。

 クエリの実行統計(runtime statistics)が集計される期間を指定するオプションがINTERVAL_LENGTH_MINUTESです。

 既存のクエリ ストアの設定値は、sys.database_query_store_optionsカタログビューで確認することができます。

注意 : クエリ ストアのデータはすべてPRIMARYファイルグループに保存されます。そのため、MAX_STORAGE_SIZE_MB の指定値は、PRIMARYファイルグループの容量を考慮して決定する必要があります。

クエリ ストア データの削除

 クエリ ストアの設定や蓄えられているデータは、ALTER DATABASEにより一括削除が可能です。

ALTER DATABASE AdventureWorks2016 SET QUERY_STORE CLEAR

 ある特定のクエリに関する実行統計と実行プランを削除することもできます。その場合は、クエリIDを指定してsp_query_store_remove_queryを実行します。

 クエリ単位ではなく、特定の実行プランやその実行統計のみを削除したい場合には、sp_query_store_remove_plan, sp_query_store_reset_exec_statsにより削除することができます。

次のページ
クエリ ストア関連ビュー

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
ここから始めよう SQL Server 2016 新機能連載記事一覧

もっと読む

この記事の著者

神谷雅紀 (カミヤマサノリ)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/7826 2016/03/18 06:00

Job Board

PR

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

2022年6月28日(火)13:10

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング