データベースのデッドロックを突き止めて防ぐ
デッドロックのレポートを読み、ぶつかるロック順序を見つけて、再発しない修正を提案するプロンプト。お好きなAIツールに貼り付けると、AIがデッドロックを解消する。
- テーマ
- アプリ・プロトタイプ
- 種類
- プロンプト
- レベル
- 中級
- 所要時間
- 約15分
結果はツール、モデル、入力内容によって変わります。
結果のプレビュー
例:当サイトの編集部が書いたもので、実際のAIの出力ではありません。
時系列: 1. ジョブ A が注文 17 をロックし、次に在庫行 5 を待つ 2. リクエスト B が在庫行 5 をロックし、次に注文 17 を待つ 3. データベースが B を中断 原因: ロック順序が逆 修正 1: 常に注文、在庫の順でロック 修正 2: stock.product_id にインデックス 修正 3: B を短いランダム待機で最大 3 回再試行
入力する
入力した内容はこのブラウザ画面の中だけにとどまります。当サイトが保存・送信することはありません。
- PostgreSQL
- InnoDB の MySQL
- SQL Server
- クラウドのマネージドデータベース
- わからない
- 二つのジョブが同じ注文を更新する
- 月末の高負荷時
- 夜間インポート中
- ユーザーが同時に保存したとき
- 新しいインデックスを追加した後
- エラーで中断されるリクエスト
- 再試行を繰り返すジョブ
- ピーク時の遅いページ
- 反映されない更新
- ログに警告だけが出る
あなたのプロンプト
プロンプトを編集しました。上の入力欄を変えても、もう上書きされません。
これはAIへの指示文で、まだ完成品ではありません。
このプロンプトが使えるツール
このプロンプトに向いているAIツール:
使い方
- 項目を入力するか、候補をタップします。氏名、住所などの個人情報は入れません。
- 完成したプロンプトをお好きなAIツールに貼り付けます。
- データベースログのデッドロックレポートと両方のコード経路のクエリを、テーブル名は残し顧客データは除いて貼り付けてください。
なぜうまくいくのか
デッドロックが運の悪さで起きることはほとんどありません。たいていは二つのコード経路が同じものを異なる順序でロックしており、順序を固定すれば根本から解消します。
ヒント
- トランザクションやインデックスの変更は、本番に出す前にデータベースのコピーで試してください。