本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。今回は「RESOURCE_SEMAPHORE待ちが発生した」場合の解決方法を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。
「Windows Server 2012 R2」上に「SQL Server 2016 RTM」をインストールした環境を想定して解説します(本トラブルシューティングの対応バージョン:SQL Server 全バージョン)。
実行する処理の中に並べ替えやインデックス作成動作などが含まれている場合は、メモリ上に「Workspace Memory」と呼ばれる作業領域を事前に確保する必要があります。Workspace Memoryとして使用可能なメモリ量を超えて、新たな処理がWorkspace memoryを要求するとRESOURCE_SEMAPHOREの待ちが発生します。
この状況はパフォーマンスログでも確認できます。Memory Managerオブジェクト(*1)の「Maximum Workspace Memory (KB)」「Granted Workspace Memory (KB)」「Memory Grants Outstanding」「Memory Grants Pending」などのカウンタの値に注意してください(図2)。
特に「Memory Grants Pending」はWorkspace Memory待ちの数を表しているため、処理遅延時の確認ポイントの1つとなります。
「SQL Server 2016」に搭載される新たなセキュリティ対策を追う
そもそも、リレーショナルデータベースとは何か?
データの登録を行うINSERT文
複数の条件を指定してSELECT文を実行する
Oracle運用の基本「ログ」を理解しようCopyright © ITmedia, Inc. All Rights Reserved.