RDS for SQL Server でリソースガバナーを設定するためのベストプラクティス - Amazon Relational Database Service

RDS for SQL Server でリソースガバナーを設定するためのベストプラクティス

リソースの消費を制御するために、RDS for SQL Server は Microsoft SQL Server のリソースガバナーをサポートしています。以下のベストプラクティスは、一般的な設定の問題を回避し、データベースのパフォーマンスを最適化するのに役立ちます。

  1. リソースガバナーの設定は master データベースに保存されます。リソースガバナーの設定スクリプトのコピーは必ず個別に保存することをお勧めします。

  2. 分類子関数はログイン処理時間を延長するため、分類子の複雑なロジックを避けることをお勧めします。関数が複雑すぎると、Amazon RDS オートメーションセッションなどのログイン遅延や接続タイムアウトが発生する可能性があります。これは、Amazon RDS オートメーションがインスタンスの状態をモニタリングする機能に影響を与える可能性があります。したがって、本番稼働前の環境で分類子関数をテストしてから、本番稼働環境に実装することをお勧めします。

  3. ワークロードグループで REQUEST_MAX_MEMORY_GRANT_PERCENT に高い値 (70 以上) を設定しないでください。そうしないと、データベースインスタンスが他の同時クエリに十分なメモリを割り当てることができなくなり、メモリ付与タイムアウトエラー (エラー 8645) が発生する可能性があります。逆に、この値を低く (1 未満) 設定したり 0 に設定すると、メモリワークスペースを必要とするクエリ (ソートまたはハッシュオペレーションを含むクエリなど) がユーザー定義のワークロードグループで適切に実行できなくなる可能性があります。RDS は、デフォルトのワークロードグループの値を 1~70 に制限することで、これらの制限を適用します。

  4. tempdb をリソースプールにバインドする場合、メモリ最適化 tempdb メタデータをプールにバインドした後、プールが最大設定に達し、tempdb を使用するクエリがメモリ不足エラーで失敗する可能性があります。特定の状況では、メモリ不足エラーが発生した場合に SQL Server が停止する可能性があります。これが発生する可能性を減らすには、メモリプールの MAX_MEMORY_PERCENT を高い値に設定します。