何よりもまず、デッドロックとは何ですか?デッドロックは、2つ以上のトランザクションが互いの進行をブロックするときに発生します。これは、1つのトランザクションが、他のトランザクションがアクセスする必要のあるデータベースオブジェクトをロックしているためです。各プロセスはロックされたオブジェクトを無期限に待機できるため、これにより、あらゆる種類の進行がハードストップされます。 SQL Serverは、ブロックされたプロセスの1つ以上を強制終了することにより、膠着状態を解消するために介入します。殺された不運なプロセスは、最初からやり直す必要があります。
ほとんどのDBAは、非常に時間がかかるため、デッドロックを見つけるのに苦労します(または、デッドロックが最初に起こったことであるかどうかを調べようとします)。多くの場合、デッドロックが検出されるまでに、さらにいくつかの問題が発生し、問題が悪化している可能性があります。デッドロックが発生したことを把握したとしても、何がブロックされているか、各プロセスによって要求されるロックタイプの性質、およびどのセッションが関与しているかを知らずに、デッドロックを修正することはほぼ不可能です。
デッドロック分析などの機能は、通常、高価な「エンタープライズレベル」の監視ツールでのみ見られます。しかし、Spotlight Cloudの開発者は、DBAが数百のSQL Serverを監視していない場合があることを理解しています。1つまたは2つしかない場合もあります。そのため、ホストされた監視ツールにデッドロック分析が標準機能として含まれていることを発表できることに興奮しています。 SpotlightCloudProfessional。仕組みは次のとおりです。
Spotlight Cloud SQL Serverデッドロック分析を使用すると、デッドロックを特定して解決し、データベースのパフォーマンスを向上させるために必要なすべてのパフォーマンスデータにアクセスできます。
Spotlight Cloudのデッドロック分析ダッシュボードには、SQLServer環境のデッドロックの完全なビューが表示されます。ここでは、デッドロックの影響を受けるすべてのプロセスとリソースを1つの画面で表示でき、特定の時間枠内に発生したデッドロックの数、デッドロックの結果として各プロセスが失われた時間、関連するSQL、およびどのプロセスがSQLServerデッドロック解決の犠牲になったのか。
アラームの概要では、デッドロックに関連するすべてのアラームを確認できます。アラームをクリックすると、発生したデッドロックの数、犠牲者として犠牲になったセッションの数、およびデッドロックの解決のために失われた全体の時間の概要が表示されます。上記のすべての情報に加えて、最も影響を受けたセッション、データベース、およびオブジェクトが表示されます。
まとめ
Spotlight Cloud Deadlock Analysisを使用すると、デッドロックの発生時に実行されていたセッションとプログラムを表示できます。ダッシュボードには、その特定のプログラムによって実行された正確なSQLテキストが表示されます。そのSQLにドリルダウンすると、SQLがデッドロックされた理由と、その時点で他に何がSQLを取得しようとしていたかを特定できます。また、ロックの種類(行、キー、ページ、SPIDなど)でフィルタリングすることもできます。ロックの種類、関与したオブジェクト、関与したステートメントテキスト、およびセッションを使用して、デッドロックして解決を開始します。
Spotlight Cloudのデッドロック分析を使用すると、次のことができます…
- 読みやすい表で、デッドロックのタイムラインと1秒あたりのスループット要求を表示/編集します。
- データベース、プログラム、ユーザー、およびオブジェクトに基づいてフィルタリングし、強制終了されたプロセスの根本原因を特定できるようにします。たとえば、デッドロックが原因で特定のオブジェクト(おそらくデータベース内のテーブル)にアクセスできなかった場合です。
- すべてのセッション、関連するプログラム、および特定のデッドロックに関連するすべての被害者を特定します。
- 各セッションで要求されたオブジェクトと要求されたロックタイプのリストを参照してください
- 特定のプログラムによって実行された正確なSQLテキストを確認してください。
したがって、デッドロックの特定に何時間も費やす代わりに、Spotlight Cloud Professionalの30日間のトライアルを試して、時間とリソースを最大限に活用してください。