「ロックされたわけではない」のに終わらない処理がある(パフォーマンストラブル)SQL Serverトラブルシューティング(53)(2/2 ページ)

» 2017年07月03日 05時00分 公開
[椎名武史ユニアデックス株式会社]
前のページへ 1|2       

解決方法

 SQL Serverの実行プランが変わってしまう場合には、以前解説したように「統計情報を更新する」ことで多くは解消されます。しかし、何らかの理由で統計情報を更新できないものの、実行プランを変更したいシーンはあり得ます。クエリストアを有効にしたシステムならば、「効率的なプランを、強制的に実行させる」ことで対処可能です。

 方法は簡単です。クエリストアのメニューから効率的な方のプランを選び(今回の場合は、プランID「10」)、「プランの強制」ボタンを押すだけでそのプランを固定できます(図4)。

photo 図4 クエリストアのメニューから、「使うプランを強制的に固定」できる

 この作業によって、遅いプランID「8」から元のプランID「10」を使う体制に戻り、遅延トラブルも解消されました。

「ロックされたわけではない」のに終わらない処理がある」場合の対策手順

  1. SQL Server 2016以降では、事前に「クエリストア」を有効にしておく
  2. クエリストアのメニューから、遅延が発生している実行プランを確認する
  3. 実行プランが意図せず変わっていたならば、元のプランを使うように指定する(プランの強制)


本トラブルシューティングの対応バージョン:SQL Server 2016以降

筆者紹介

内ヶ島 暢之(うちがしま のぶゆき)

ユニアデックス株式会社 NUL System Services Corporation所属。Microsoft MVP Data Platform(2011〜)。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を担当。2016年IoTビジネス開発の担当を経て、2016年現在は米国シリコンバレーにて駐在員として活動中。目標は生きて日本に帰ること。

椎名 武史(しいな たけし)

ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。