株式会社コーソル
COLUMN

コーソルのお役立ちコラム

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

SQL

公開日  更新日

SQL Server運用時のパフォーマンスモニターの監視項目を解説

SQL Serverの監視方法についてサーチすると、“パフォーマンスモニター”を使った事例を多く見かけます。
しかし、パフォーマンスモニターがどのようなものか、把握できていない担当者様も多いのではないでしょうか?

そこで今回は、パフォーマンスモニターの概要とともに、SQL Serverを運用する際に監視すべき項目を解説します。
「SQL Serverの監視を任されたが、どこから着手してよいかわからない……」とお悩みの担当者様は、ぜひご覧ください。

SQL Serverのパフォーマンスを監視する重要性

SQL Serverの安定稼働を目指すうえで、パフォーマンスの監視は必要不可欠な対応です。

仮に、本番稼働中のSQL Serverでパフォーマンス低下が発生したとしても、監視していなければそれにすぐ気づくことができません。
そうなると、提供しているシステムやサービスにも影響が及び、結果として大きな損害を被ることになります。
問題発生時に素早く検知・対応して、上記のような事態を発生させないためにも、SQL Serverの状態を常に把握しておく必要があるわけです。

また、パフォーマンス監視によってSQL Serverについてのデータが集まれば、将来的に発生しうる問題も事前に対策できます。

パフォーマンスモニターとは?

SQL Serverのパフォーマンスを監視する手段にもさまざまありますが、Windowsで運用するのであれば、パフォーマンスモニターを利用するのがおすすめです。

パフォーマンスモニターは、Windowsに組み込まれたパフォーマンス監視ツールです。
本来はシステムリソースの状況を可視化・監視するためのツールですが、SQL Serverのパフォーマンスを監視することもできます。

トランザクション数やロックの待ち時間など、SQL Serverを監視するうえで必要な項目は網羅されています。
特定の項目について閾値を設定し、超えた場合にアラートを飛ばすことも可能なので、実用性もなんら問題はありません。
タスクマネージャーから“パフォーマンスモニター”をクリックするだけで使い始められるので、導入も容易です。

パフォーマンスモニターにおけるSQL Serverの監視項目

パフォーマンスモニターでは、オブジェクトおよびカウンターという単位で、監視項目が定められています。
そのなかから、SQL Serverのパフォーマンスをチェックする際に監視したい項目を5つピックアップしたので、ぜひ参考としてください。

メモリーの使用量

SQL Serverのインスタンスは、稼働時間に応じてメモリーを消費していきます。
そのため、メモリーの使用量は優先して確認しておきたいところです。

パフォーマンスモニターでメモリーを監視する際は、以下のカウンターが項目として適しています。

メモリーに関連するカウンターの一例

  • Memory: Available Bytes
  • SQL Server: Memory Manager: Total Server Memory
  • SQL Server: Memory Manager: Target Server Memory

Available Bytesはサーバー全体で利用可能なメモリーの量であり、この値が小さい場合は全体的にメモリーが不足していることを意味します。
SQL Serverと並行してソフトウェアを稼働させていると、全体のメモリーが足りなくなる可能性が高いのでこの値を注視しておきましょう。

SQL Serverが利用中のメモリーについて把握する際は、Total Server Memoryの値を確認してください。
この値が常に高くサーバー全体のメモリー量に近いのであれば、メモリーの増設が必要です。

また、理想的なメモリー消費量を示すTarget Server Memoryの値が、上記の値を大幅に上回っている場合には、SQL Serverでメモリー不足が発生していると考えられます。
この際はSSMSなどからメモリー割り当ての最小値を見直して、Total Server MemoryとTarget Server Memoryの差が小さくなるように調節してください。

SQL Server Memory Managerオブジェクトには、ほかにも多様なカウンターがあるので、状況に応じて監視項目を設定するのがベストです。

CPUの使用率

以下のカウンターを用いて、CPUの使用率も確認しておきましょう。

CPUに関するカウンターの一例

  • Processor: %Processor Time
  • Processor: %Privileged Time
  • Processor: %User Time
  • System: Processor Queue Length

メモリー同様、CPUもサーバー全体とSQL Serverのそれぞれの観点から確認しておくのがベストです。

%Processor Timeの値が常に高い場合は、システムの要求値に対してサーバーのCPU性能が足りていないため、アップグレードを検討する必要があります。
対して、SQL ServerのCPU使用率が著しいときには、%User Timeの値が高くなります。
この際はCPUに負荷をかけているクエリを特定したうえで、そのクエリが利用する統計情報を更新してください。

ただし、%Privileged Timeの値も高いのであれば、SQL Serverではなくほかのソフトウェアに原因がある可能性も考えられます。
CPUに負荷をかけている要因を正確に突き止めるためにも、上記の2項目はあわせて確認するべきでしょう。

ディスクの利用状況

SQL Serverが利用しているディスクの状況も、パフォーマンスを診断するうえでは非常に重要な項目です。
SQL Serverでのデータの読み書きはOSの入出力機能に依存しているため、ディスクの利用状況に問題があればSQL Serverのパフォーマンスにも影響が表れます。

ディスクの指標として利用できる項目は、以下の通りです。

ディスクに関するカウンターの一例

  • PhysicalDisk: Avg. Disk sec/Read
  • PhysicalDisk: Avg. Disk sec/Write
  • PhysicalDisk: Avg. Disk sec/Transfer
  • PhysicalDisk: Avg. Disk Queue Length

上記のなかでも特に重要なのが、ディスクへの読み書きの平均速度を表す、Avg. Disk sec/ReadとAvg. Disk sec/Writeです。
これらの値が25ミリ秒を超えている場合、ディスクI/Oが遅く、SQL Serverでのファイルの読み書きにも支障が出ている可能性があります。

上記のほかには、システムの要求値に対してそもそもディスク領域の量が少ない、という問題も起こりえます。
扱うファイルの量を減らせば解消可能ですが、それが難しい場合はサーバーのディスク容量を増強しなくてはなりません。

参照元:Microsoft Learn Challenge

1秒あたりのバッチリクエスト数

1秒あたりに受信したバッチの数は、SQL Serverのスループットを測る際の指標となります。
パフォーマンスモニター上では、Batch Requests/secカウンターで確認が可能です。

また上記の値は、SQL Serverの状態がビジーかどうかをチェックする際にも役立ちます。
先に挙げたCPU使用率に関するカウンターとあわせて利用すれば、SQL Serverに対する作業負荷や必要な性能のベースラインを把握できるでしょう。

ユーザーの接続数

同時接続するユーザーの数が増えれば、当然それだけ要求されるシステムリソースも増加します。
ですので、SQL Serverのパフォーマンスを監視する際は、ユーザーの接続数も項目に含めておくことが大切です。
リアルタイムで接続しているユーザーの数は、User Connectionsカウンターから確認できます。

より詳細にパフォーマンスを監視する方法

ここまでにご説明した通り、パフォーマンスモニターでもSQL Serverのパフォーマンスを十分に監視できます。
しかし状況によっては、より詳細な情報を確認したいケースもあるはずです。
そのような場合には、以下に紹介するパフォーマンスモニター以外の監視方法を利用しましょう。

パフォーマンスダッシュボード

パフォーマンスダッシュボードとは、SSMSのバージョン17.2以降から追加された管理ツールです。
SQL Serverのパフォーマンスに関する情報が視覚的に把握できるようになっており、ボトルネックの迅速な特定が叶います。

確認できる情報は、CPU使用率やユーザーセッションのほか、キャッシュのヒット率やコストの高いクエリなどです。
パフォーマンスモニターと併用すれば、発生した問題の原因がSQL ServerとOSのどちらにあるのか、効果的に切り分けることが可能です。

また、集積したデータをExcel形式のレポートとして出力できるため、チームへの共有やクライアントへの報告時にも役立ちます。

クエリストア

SSMSのクエリストアを利用して、パフォーマンス低下を招いている非効率的なクエリを監視するのも有効な方法です。

クエリストア上では、改善の必要があるクエリやリソース消費量の多いクエリ、待機中のクエリなどをビュー形式で確認できます。
問題のあるクエリはそのままチューニング可能なので、問題の発見から対応までを素早く済ませられます。
パフォーマンス低下の原因がクエリにあると見当がついているなら、クエリストアを使うのが最適です。

クエリストアはほかにも、SQL Serverをアップグレードしたあとのパフォーマンスの安定化や、A/Bテストなどの場面でも効果を発揮します。
SQL Serverを運用するのであれば、特段の事情がない限り有効化しておくのが望ましいでしょう。

専用のパフォーマンス監視ツール

WindowsやSQL Serverに付帯するものではなく、別途専用の監視ツールを導入する、というのも一案です。

専用の監視ツールは、本記事で解説してきた項目が網羅できているほか、独自の機能も備えており利便性は高いといえます。
ダッシュボードの内容もシンプルに整理されている製品が多く、視覚的にわかりやすい操作が可能です。
製品によってはモバイル機能までカバーしており、オフィスにいなくともSQL Serverの状態を確認できます。
「より多くの機能を利用して監視を行いたい」「わかりやすいダッシュボードを使いたい」とお考えなら、監視ツールの導入を検討してみてはいかがでしょうか。

ただし、機能面は非常に優れている一方で、こうした製品は基本的に有償となるため、運用に際して追加のコストがかかるのは避けられません。
無償トライアル版を提供している製品もあるので、まずはそちらを試して、コストと機能面のバランスを確かめるのがおすすめです。

パフォーマンスモニターでSQL Serverを監視する際は、システムリソースやバッチリクエストなどを確認しよう

今回は、SQL Serverをパフォーマンスモニターで運用する際の、監視項目を中心に解説しました。

パフォーマンスモニターを使えば、メモリーやCPUなどの主要な項目でSQL Serverを監視できます。
本記事で取り上げたもの以外にも、パフォーマンスモニターで監視できる項目は数多くあるので、状況に合わせて選択するのが重要です。
また、SSMSの機能や専用のツールを利用すれば、パフォーマンス状況のより詳細な監視も叶います。

SQL Serverの監視ツールをお探しであれば、ボトルネックとなっている箇所が色分け表示で瞬時にわかる『Spotlight』がおすすめです。
コーソルではSpotlightの販売からサポート、ナレッジサイトの共有まで実施しておりますので、ぜひ一度お問い合わせください。

この記事の監修者

監修者の写真

舛井 智行 (ますい ともゆき)

営業本部 企画&マーケティング部 次長

《資格》

Oracle Master Gold、Oracle RAC Expert、Linux Expert、LPIC Level1、Dbvisit Standby Certified Associate、基本情報技術者

《略歴》

2004年コーソル入社。2019年まで一貫してOracle Databaseの設計・構築・運用のサービス提供に従事。リモートDBAやリモート監視のサービス化、働き方改革プロジェクトで人事制度改革を手掛ける。2019年からライセンス販売強化のため企画&マーケティング部に異動。DbvisitやToad、DPAの取扱開始、販売促進活動を推し進め、ライセンス販売事業の売上拡大に注力中。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL
Oracleの基本 ~データベース入門から設計/運用の初歩まで
プロとしてのOracle入門
Oracle Database 10g Oracle Enterprise Manager 逆引きクイックリファレンス

《担当者様からの一言》

コーソルはOracle Databaseの技術力において日本有数の知見を有すると自負しています。Oracle Masterの最高峰資格である『Oracle Master Platinum』の取得者数も日本No.1です。Oracle Databaseのことはもちろん、それ以外のDBについてもリモートDBAサービスを始めとした様々なサービス、製品を駆使してお客様のお困りごとを解消いたします。お困りごとがあればコーソルまでご相談ください。

監修者の写真

峯岸 隆一 (みねぎし りゅういち)

インフラソリューション部 市ヶ谷クラウドサービスチーム シニアエキスパート

《資格》

Oracle Master Gold、ORACLE MASTER Platinum、Oracle RAC Expert、
Oracle Database Cloud Service Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials、
Oracle Cloud Infrastructure 2018 Architect Associate、
Oracle Cloud Infrastructure 2019 Architect Professional、
AWS Certified Solutions Architect – Associate、OSS-DB Silver、
MySQL 5.6 Database Administrator、基本情報技術者、テクニカルエンジニア(データベース)

《略歴》

2006年コーソル入社。2021年までOracle Databaseを中心にMySQLやGoldenGateなど、多岐にわたる製品のサポート業務に従事。2021年から企画&マーケティング部に異動し、Nutanix NDBサービス化、Qlik Replicateサービス化、AWS、OCIなど様々な製品のサービス化、クラウド環境上の製品検証、ブログ執筆を手掛ける。2023年からOCI技術に磨きをかけるべくOCI基盤の設計・構築業務を遂行中 。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL  Oracleの基本 ~データベース入門から設計/運用の初歩まで

《担当者様からの一言》

コーソルはOracle Database製品および周辺製品において特化した技術力を有している会社です。また、育成にも力を入れており、新卒などOracle Databaseの知識がないエンジニアでも数年でOracle Master Platinumを取得するほどのエンジニアに育て上げることに成功しています。クラウド分野(AWS、Oracle Cloud)にも積極的に進出しておりますので、Oracle Databaseに関するサービスをご要望であればプラットフォーム問わず対応できるコーソルにご連絡下さい。

TOP