40501: The service is currently busy. Retry the request after 10 seconds(サービスは現在ビジー。10 秒後に要求を再試行)
SQL Server意味
Azure SQL Database で、リソース逼迫 (エンジンのスロットリング) によりサービスが一時的に要求を拒否した。システムがビジー状態であり、クライアントは少し後で再試行することが求められる。
原因
CPU、接続数、トランザクションログの書き込み速度、ワーカー数などのリソースが、選択したサービスレベル (DTU/vCore) の上限に達した、急激な負荷増大、またはリソースを消費する長時間実行/非効率なクエリ。エラーに付随する 'reason code' が、どのリソースがスロットリングされているかを示す。
対処方法
アプリケーションに指数バックオフ付きの再試行ロジックを実装する。これは一時的なエラーに対する想定された動作である。リソース使用状況を確認する: sys.dm_db_resource_stats と Azure ポータルのメトリクス。クエリ/インデックスを最適化し、不要な同時実行を減らす。飽和が継続する場合はサービスレベル (DTU/vCore) をスケールアップする。
同じデータベースの他の項目
- 605Attempt to fetch logical page belongs to a different allocation unit(取得しようとした論理ページが別のアロケーションユニットに属する)
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column(1 つ以上のオブジェクトがこの列にアクセスしているため ALTER TABLE ALTER COLUMN が失敗)
- 7202Could not find server 'name' in sys.servers(sys.servers にサーバー 'name' が見つからない)
- 8645A time out occurred while waiting for memory resources to execute the query(クエリ実行用のメモリリソース待機中にタイムアウト発生)
- 8651Could not perform the operation because the requested memory grant was not available(要求されたメモリ許可が利用できないため操作を実行できない)
- 5061ALTER DATABASE failed because a lock could not be placed on database(データベースにロックを設定できないため ALTER DATABASE が失敗)
- 3702Cannot drop database because it is currently in use(データベースは使用中のため削除できない)