Microsoft Azure SQL Database の接続に関する問題とその他のエラーのトラブルシューティングTroubleshooting connectivity issues and other errors with Microsoft Azure SQL Database

Azure SQL Database への接続に失敗すると、エラー メッセージが表示されます。You receive error messages when the connection to Azure SQL Database fails. これらの接続の問題は、Azure SQL Database の再構成、ファイアウォールの設定、接続のタイムアウト、正しくないログイン情報、またはアプリケーション設計プロセスの間にベスト プラクティスと設計ガイドラインを適用しなかったことが原因で、発生する可能性があります。These connection problems can be caused by Azure SQL Database reconfiguration, firewall settings, a connection timeout, incorrect login information or failure to apply best practices and design guidelines during the [application design] (sql-database-develop-overview.md) process. また、一部の Azure SQL Database リソースの上限に達した場合、Azure SQL Database に接続できません。Additionally, if the maximum limit on some Azure SQL Database resources is reached, you can't connect to Azure SQL Database.

一時的な障害のエラー メッセージ (40197、40613、その他)Transient fault error messages (40197, 40613 and others)

Azure インフラストラクチャには、SQL Database サービス内で負荷の大きいワークロードが生じた場合に、サーバーを動的に再構成する機能があります。The Azure infrastructure has the ability to dynamically reconfigure servers when heavy workloads arise in the SQL Database service. この動的な動作によって、クライアント プログラムが SQL Database への接続を失うことがあります。This dynamic behavior might cause your client program to lose its connection to SQL Database. この種のエラーは、 「一時的な障害」 と呼ばれます。This kind of error condition is called a transient fault. データベースの再構成イベントは、計画されたイベント (ソフトウェアのアップグレードなど) または計画されていないイベント (プロセスのクラッシュ、負荷分散など) が原因で発生します。Database reconfiguration events occur because of a planned event (for example, a software upgrade) or an unplanned event (for example, a process crash, or load balancing). 通常、ほとんどの再構成イベントは一時的であり、長くて 1 分もかかりませんが、Most reconfiguration events are generally short-lived and should be completed in less than 60 seconds at most. これらのイベントは、大規模なトランザクションによる実行時間の長い復旧など、場合によっては、完了に時間がかかることがあります。However, these events can occasionally take longer to finish, such as when a large transaction causes a long-running recovery. 次の表では、SQL Database に接続するときにアプリケーションが受け取る可能性のあるさまざまな一時的エラーの一覧を示しますThe following table lists various transient errors that applications can receive when connecting to SQL Database

一時的な障害のエラー コードの一覧List of transient fault error codes

エラー コードError code 重大度Severity [説明]Description
40604060 1616 ログインで要求されたデータベース "%.*ls" を開くことができません。Cannot open database "%.*ls" requested by the login. ログインに失敗しました。The login failed. 詳細については、エラー 4000 から 4999 を参照してください。For more information, see Errors 4000 to 4999
4019740197 1717 要求の処理中にサービスでエラーが発生しました。The service has encountered an error processing your request. 再試行してください。Please try again. エラー コード %d。Error code %d.

ソフトウェアやハードウェアのアップグレード、ハードウェアの障害、その他フェールオーバーに関する問題によってサービスがダウンしたときに、このエラーが発生します。You receive this error when the service is down due to software or hardware upgrades, hardware failures, or any other failover problems. 発生したエラーやフェールオーバーの種類に関する追加情報は、エラー 40197 のメッセージに埋め込まれたエラー コード (%d) から得られます。The error code (%d) embedded within the message of error 40197] provides additional information about the kind of failure or failover that occurred. エラー 40197 のメッセージ内に埋め込まれているエラー コードは、40020、40143、40166、40540 などです。Some examples of the error codes are embedded within the message of error 40197 are 40020, 40143, 40166, and 40540.

SQL Database サーバーに再接続すると、自動的にデータベースの正常なコピーに接続されます。Reconnecting to your SQL Database server automatically connects you to a healthy copy of your database. アプリケーションでエラー 40197 をキャッチし、メッセージに埋め込まれているエラー コード (%d) をログに記録してトラブルシューティングに備えたうえで、リソースが復旧して接続が再度確立されるまで SQL Database への再接続を試みる必要があります。Your application must catch error 40197, log the embedded error code (%d) within the message for troubleshooting, and try reconnecting to SQL Database until the resources are available, and your connection is established again. 詳細については、「一時エラー」を参照してください。For more information, see Transient errors.
4050140501 2020 サービスは現在ビジー状態です。The service is currently busy. 10 秒後に要求を再試行してください。Retry the request after 10 seconds. インシデント ID: %ls。Incident ID: %ls. コード: %d。Code: %d. 詳細については、次を参照してください。For more information, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
4061340613 1717 サーバー '%.*ls' のデータベース '%.*ls' は現在使用できません。Database '%.*ls' on server '%.*ls' is not currently available. 後で接続を再試行してください。Please retry the connection later. 問題が解決しない場合は、'%.*ls' のセッション トレース ID を控えてカスタマー サポートに問い合わせてください。If the problem persists, contact customer support, and provide them the session tracing ID of '%.*ls'.

このエラーは、データベースに対して専用管理者接続 (DAC) が既に確立されている場合に発生する可能性があります。This error may occur if there is already an existing dedicated administrator connection (DAC) established to the database. 詳細については、「一時エラー」を参照してください。For more information, see Transient errors.
4991849918 1616 要求を処理できません。Cannot process request. 要求を処理するリソースが十分ではありません。Not enough resources to process request.

サービスは現在ビジー状態です。The service is currently busy. 後で要求を再試行してください。Please retry the request later. 詳細については、次を参照してください。For more information, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
4991949919 1616 要求を処理、作成、更新できません。Cannot process create or update request. サブスクリプション "%ld" に対して進行中の作成または更新操作が多すぎます。Too many create or update operations in progress for subscription "%ld".

サービスが、サブスクリプションまたはサーバーに対する複数の作成または更新要求の処理でビジ―状態です。The service is busy processing multiple create or update requests for your subscription or server. 現在、要求はリソースの最適化のためにブロックされています。Requests are currently blocked for resource optimization. クエリ sys.dm_operation_status を実行して保留中の操作を確認します。Query sys.dm_operation_status for pending operations. 保留中の作成要求または更新要求が完了するまで待つか、いずれかの保留中の要求を削除して後で要求を再試行します。Wait until pending create or update requests are complete or delete one of your pending requests and retry your request later. 詳細については、次を参照してください。For more information, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
4992049920 1616 要求を処理できません。Cannot process request. サブスクリプション "%ld" に対して進行中の操作が多すぎます。Too many operations in progress for subscription "%ld".

サービスが、このサブスクリプションに対する複数の要求の処理でビジー状態です。The service is busy processing multiple requests for this subscription. 現在、要求はリソースの最適化のためにブロックされています。Requests are currently blocked for resource optimization. クエリ sys.dm_operation_status を実行して操作の状態を確認します。Query sys.dm_operation_status for operation status. 保留中の要求が完了するまで待つか、いずれかの保留中の要求を削除して後で要求を再試行します。Wait until pending requests are complete or delete one of your pending requests and retry your request later. 詳細については、次を参照してください。For more information, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
42214221 1616 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING' を長時間待機しているため、read-secondary へのログインに失敗しました。Login to read-secondary failed due to long wait on 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING'. レプリカのリサイクル時に実行中だったトランザクションに行のバージョンがないため、レプリカはログインに使用できません。The replica is not available for login because row versions are missing for transactions that were in-flight when the replica was recycled. この問題を解決するには、プライマリ レプリカのアクティブ トランザクションをロール バックするか、コミットします。The issue can be resolved by rolling back or committing the active transactions on the primary replica. プライマリ上の長い書き込みトランザクションを避けることでこの状態が発生することを最小限に抑えられます。Occurrences of this condition can be minimized by avoiding long write transactions on the primary.

一時的な接続の問題を解決する手順Steps to resolve transient connectivity issues

  1. アプリケーションによって報告されたエラーで発生している既知の障害については、 Microsoft Azure サービス ダッシュボード を参照してください。Check the Microsoft Azure Service Dashboard for any known outages that occurred during the time during which the errors were reported by the application.
  2. Azure SQL Database など、クラウド サービスに接続するアプリケーションは、定期的な再構成イベントを想定し、これらをアプリケーション エラーとしてユーザーに示すのではなく、再試行ロジックを実装してこれらのエラーを処理します。Applications that connect to a cloud service such as Azure SQL Database should expect periodic reconfiguration events and implement retry logic to handle these errors instead of surfacing these as application errors to users.
  3. データベースがリソースの制限に近づくと、一時的な接続の問題に見える場合があります。As a database approaches its resource limits, it can seem to be a transient connectivity issue. リソース制限に関するページを参照してください。See Resource limits.
  4. 接続の問題が解消されない場合、アプリケーションでのエラーの継続時間が 60 秒を超えた場合、または 1 日にエラーが複数回発生した場合は、 Azure サポート サイトの [サポートの要求] を選択して、サポート要求を送信してください。If connectivity problems continue, or if the duration for which your application encounters the error exceeds 60 seconds or if you see multiple occurrences of the error in a given day, file an Azure support request by selecting Get Support on the Azure Support site.

再試行ロジックの実装Implementing Retry Logic

クライアント プログラムに再試行ロジックを含めて、一時障害に自動的に修復する時間を与えた後、接続の再確立を試行できるようにすることをお勧めします。It is strongly recommended that your client program has retry logic so that it could reestablish a connection after giving the transient fault time to correct itself. 最初に再試行する前に、5 秒間待つことをお勧めします。We recommend that you delay for 5 seconds before your first retry. 5 秒未満で再試行すると、クラウド サービスに過度の負荷がかかるおそれがあります。Retrying after a delay shorter than 5 seconds risks overwhelming the cloud service. 再試行するたびに、待ち時間を比例して、最大 60 秒まで長くする必要があります。For each subsequent retry the delay should grow exponentially, up to a maximum of 60 seconds.

再試行ロジックのコード例については、以下のページを参照してください。For code examples of retry logic, see:

アプリケーションでの一時的エラーの処理の詳細については、以下を確認してくださいFor additional information on handling transient errors in your application review

ADO.NET を使用するクライアントの ブロック期間 については、「 SQL Server の接続プール (ADO.NET)」を参照してください。A discussion of the blocking period for clients that use ADO.NET is available in SQL Server Connection Pooling (ADO.NET).

この問題は、アプリケーションでサーバーに接続できない場合に発生します。The issue occurs if the application can't connect to the server.

この問題を解決するには、「一般的な接続に関する問題を修正するための手順」セクションの手順を (示されている順に) 試してください。To resolve this issue, try the steps (in the order presented) in the Steps to fix common connection issues section.

サーバー/インスタンスが見つからなかったか、アクセスできませんでした (エラー 26、40、10053)The server/instance was not found or was not accessible (errors 26, 40, 10053)

エラー 26:指定されたサーバーの位置を特定しているときにエラーが発生しましたError 26: Error Locating server specified

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.(provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

エラー 40:サーバーへの接続を開けませんでしたError 40: Could not open a connection to the server

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

エラー 10053:サーバーから結果を受信しているときに、トランスポート レベルのエラーが発生しましたError 10053: A transport-level error has occurred when receiving results from the server

10053: A transport-level error has occurred when receiving results from the server. (Provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine)

これらの問題は、アプリケーションでサーバーに接続できない場合に発生します。These issues occur if the application can't connect to the server.

これらの問題を解決するには、「一般的な接続に関する問題を修正するための手順」セクションの手順を (示されている順に) 試してください。To resolve these issues, try the steps (in the order presented) in the Steps to fix common connection issues section.

ファイアウォールの問題のため、サーバーに接続できませんCannot connect to server due to firewall issues

エラー 40615: < servername > に接続できませんError 40615: Cannot connect to < servername >

この問題を解決するには、Azure portal 経由で SQL Database のファイアウォール設定を構成します。To resolve this issue, configure firewall settings on SQL Database through the Azure portal.

エラー 5:< servername > に接続できませんError 5: Cannot connect to < servername >

この問題を解決するには、クライアントとインターネット間のすべてのファイアウォールで、送信接続用にポート 1433 が開いていることを確認します。To resolve this issue, make sure that port 1433 is open for outbound connections on all firewalls between the client and the internet.

詳細については、SQL Server アクセスを許可するための Windows ファイアウォールの構成に関するページを参照してください。For more information, see Configure the Windows Firewall to allow SQL Server access.

サーバーにログインできません (エラー 18456、40531)Unable to log in to the server (errors 18456, 40531)

ユーザー '< User name >' はログインできませんでしたLogin failed for user '< User name >'

Login failed for user '<User name>'.This session has been assigned a tracing ID of '<Tracing ID>'. Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 18456)

この問題を解決するには、サービス管理者に連絡し、有効な SQL Server のユーザー名とパスワードを提供するよう依頼してください。To resolve this issue, contact your service administrator to provide you with a valid SQL Server user name and password.

通常、サービス管理者は、次の手順を使用してログイン資格情報を追加します。Typically, the service administrator can use the following steps to add the login credentials:

  1. SQL Server Management Studio (SSMS) を使用して、サーバーにログインします。Log in to the server by using SQL Server Management Studio (SSMS).

  2. 次の SQL クエリを使用して、ログイン名が無効になっているかどうかを確認します。Run the following SQL query to check whether the login name is disabled:

    SELECT name, is_disabled FROM sys.sql_logins
    
  3. 対応する名前が無効になっている場合は、次のステートメントを使用して有効にします。If the corresponding name is disabled, enable it by using the following statement:

    Alter login <User name> enable
    
  4. SQL ログイン ユーザー名が存在しない場合は、これらの手順に従って作成します。If the SQL login user name doesn't exist, create it by following these steps:

    1. SSMS で、 [セキュリティ] をダブルクリックして展開します。In SSMS, double-click Security to expand it.
    2. [ログイン] を右クリックし、 [新しいログイン] を選択します。Right-click Logins, and then select New login.
    3. プレースホルダーを含む生成されたスクリプトでは、次の SQL クエリを編集して実行します。In the generated script with placeholders, edit and run the following SQL query:
    CREATE LOGIN <SQL_login_name, sysname, login_name>
    WITH PASSWORD = ‘<password, sysname, Change_Password>’
    GO
    
  5. [データベース] をダブルクリックします。Double-click Database.

  6. ユーザーにアクセス許可を付与するデータベースを選択します。Select the database that you want to grant the user permission to.

  7. [セキュリティ] をダブルクリックします。Double-click Security.

  8. [ユーザー] を右クリックし、 [新しいユーザー] を選択します。Right-click Users, and then select New User.

  9. プレースホルダーを含む生成されたスクリプトでは、次の SQL クエリを編集して実行します。In the generated script with placeholders, edit and run the following SQL query:

    CREATE USER <user_name, sysname, user_name>
    FOR LOGIN <login_name, sysname, login_name>
    WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>
    GO
    -- Add user to the database owner role
    
    EXEC sp_addrolemember N’db_owner’, N’<user_name, sysname, user_name>’
    GO
    

    注意

    sp_addrolemember を使用して、特定のユーザーを特定のデータベース ロールにマップすることもできます。You can also use sp_addrolemember to map specific users to specific database roles.

詳細については、Azure SQL Database でのデータベースとログインの管理に関するページを参照してください。For more information, see Managing databases and logins in Azure SQL Database.

接続のタイムアウト エラーConnection timeout expired errors

System.Data.SqlClient.SqlException (0x80131904):接続がタイムアウトしましたSystem.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3; handshake=29995;

System.Data.SqlClient.SqlException (0x80131904):タイムアウトに達しましたSystem.Data.SqlClient.SqlException (0x80131904): Timeout expired

System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

System.Data.Entity.Core.EntityException:基になるプロバイダーがオープンで失敗しましたSystem.Data.Entity.Core.EntityException: The underlying provider failed on Open

System.Data.Entity.Core.EntityException: The underlying provider failed on Open. -> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. -> System.ComponentModel.Win32Exception: The wait operation timed out

< server name > に接続できませんCannot connect to < server name >

Cannot connect to <server name>.ADDITIONAL INFORMATION:Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=231; handshake=983; [Login] initialization=0; authentication=0; [Post-Login] complete=13000; (Microsoft SQL Server, Error: -2) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2&LinkId=20476 The wait operation timed out

これらの例外は、接続またはクエリの問題が原因で発生する可能性があります。These exceptions can occur either because of connection or query issues. このエラーが接続の問題によって発生したことを確認する場合は、「エラーの原因が接続の問題かどうかを確認する」を参照してください。To confirm that this error is caused by connectivity issues, see Confirm whether an error is caused by a connectivity issue.

接続のタイムアウトは、アプリケーションでサーバーに接続できないために発生します。Connection timeouts occur because the application can't connect to the server. この問題を解決するには、「一般的な接続に関する問題を修正するための手順」セクションの手順を (示されている順に) 試してください。To resolve this issue, try the steps (in the order presented) in the Steps to fix common connection issues section.

リソース ガバナンス エラーResource governance errors

エラー 10928: リソース ID: %dError 10928: Resource ID: %d

10928: Resource ID: %d. The %s limit for the database is %d and has been reached. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. The Resource ID value in error message indicates the resource for which limit has been reached. For sessions, Resource ID = 2.

この問題に対処するには、次のいずれかの方法を試してみてください。To work around this issue, try one of the following methods:

  • 実行時間の長いクエリがあるかどうかを確認します。Verify whether there are long-running queries.

    注意

    これは、問題が解決されない可能性のある最小限のアプローチです。This is a minimalist approach that might not resolve the issue.

  1. 次の SQL クエリを実行して、sys.dm_exec_requests ビューを確認し、ブロックしている要求がないかどうかを調べます。Run the following SQL query to check the sys.dm_exec_requests view to see any blocking requests:

    SELECT * FROM dm_exec_requests
    
  2. ヘッド ブロッカーの入力バッファーを特定します。Determine the input buffer for the head blocker.

  3. ヘッド ブロッカー クエリを調整します。Tune the head blocker query.

    詳細なトラブルシューティング手順については、「クラウドでクエリが正常に実行されているか」を参照してください。For an in-depth troubleshooting procedure, see Is my query running fine in the cloud?.

ブロックしているクエリや実行時間の長いクエリに対応しているにもかかわらず、データベースが常に制限に達する場合は、より多くのリソースを含むエディション (エディション) にアップグレードすることを検討してください。If the database consistently reaches its limit despite addressing blocking and long-running queries, consider upgrading to an edition with more resources Editions).

動的管理ビューの詳細については、「システム動的管理ビュー」をご覧ください。For more information about dynamic management views, see System dynamic management views.

データベースの制限の詳細については、Azure SQL Database サーバーの SQL Database リソース制限に関するページを参照してください。For more information about database limits, see SQL Database resource limits for Azure SQL Database server.

エラー 10929:リソース ID:1Error 10929: Resource ID: 1

10929: Resource ID: 1. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d. However, the server is currently too busy to support requests greater than %d for this database. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. Otherwise, please try again later.

エラー 40501:サービスは現在ビジー状態ですError 40501: The service is currently busy

40501: The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.

これは、リソースの制限を超えていることを示すエンジン調整エラーです。This is an engine throttling error, an indication that resource limits are being exceeded.

リソース制限の詳細については、Database サーバーのリソース制限に関する記事を参照してください。For more information about resource limits, see Database server resource limits.

エラー 40544:データベースのサイズ クォータに達しましたError 40544: The database has reached its size quota

40544: The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Incident ID: <ID>. Code: <code>.

このエラーは、データベースのサイズ クォータに達したときに発生します。This error occurs when the database has reached its size quota.

次の手順は、問題を回避したり、追加オプションを提供したりするのに役立つ場合があります。The following steps can either help you work around the problem or provide you with additional options:

  1. Azure portal のダッシュボードを使用して、データベースの現在のサイズを確認します。Check the current size of the database by using the dashboard in the Azure portal.

    注意

    最も多くの領域を消費しているため、クリーンアップの候補となるテーブルを特定するには、次の SQL クエリを実行します。To identify which tables are consuming the most space and are therefore potential candidates for cleanup, run the following SQL query:

    SELECT o.name,
     a.SUM(p.row_count) AS 'Row Count',
     b.SUM(p.reserved_page_count) * 8.0 / 1024 AS 'Table Size (MB)'
    FROM sys.objects o
    JOIN sys.dm_db_partition_stats p on p.object_id = o.object_id
    GROUP BY o.name
    ORDER BY [Table Size (MB)] DESC
    
  2. 現在のサイズが、使用しているエディションでサポートされている最大サイズを超えていない場合は、ALTER DATABASE を使用して MAXSIZE の設定を増やすことができます。If the current size does not exceed the maximum size supported for your edition, you can use ALTER DATABASE to increase the MAXSIZE setting.

  3. データベースが、使用しているエディションでサポートされている最大サイズを既に超えている場合は、次の 1 つまたは複数の手順を試してください。If the database is already past the maximum supported size for your edition, try one or more of the following steps:

    • 通常のデータベース クリーンアップ アクティビティを実行します。Perform normal database cleanup activities. たとえば、truncate/delete を使用して不要なデータをクリーンアップしたり、SQL Server Integration Services (SSIS) または一括コピー プログラム (bcp) ユーティリティを使用してデータを移動したりします。For example, clean up the unwanted data by using truncate/delete, or move data out by using SQL Server Integration Services (SSIS) or the bulk copy program (bcp) utility.
    • データをパーティション分割するか、データを削除するか、インデックスを削除してください。その他の解決方法についてはドキュメントを参照してください。Partition or delete data, drop indexes, or consult the documentation for possible resolutions.
    • データベースのスケーリングについては、単一データベースのリソースのスケーリングに関する記事と、エラスティック プールのリソースのスケーリングに関する記事を参照してください。For database scaling, see Scale single database resources and Scale elastic pool resources.

エラー 40549:トランザクションが長時間実行されているため、セッションを終了しましたError 40549: Session is terminated because you have a long-running transaction

40549: Session is terminated because you have a long-running transaction. Try shortening your transaction.

このエラー メッセージが繰り返し表示される場合は、これらの手順に従って問題を解決してみてください。If you repeatedly encounter this error, try to resolve the issue by following these steps:

  1. sys.dm_exec_requests ビューを確認し、開いているセッションで total_elapsed_time 列の値が大きいものがないか調べます。Check the sys.dm_exec_requests view to see any open sessions that have a high value for the total_elapsed_time column. 次の SQL スクリプトを実行して、この確認を行います。Perform this check by running the following SQL script:

    SELECT * FROM dm_exec_requests
    
  2. 長時間実行されているクエリの入力バッファーを特定します。Determine the input buffer for the long-running query.

  3. クエリを調整します。Tune the query.

また、クエリのバッチ処理も検討してください。Also consider batching your queries. バッチ処理については、「バッチ処理を使用して SQL Database アプリケーションのパフォーマンスを強化する方法」を参照してください。For information on batching, see How to use batching to improve SQL Database application performance.

詳細なトラブルシューティング手順については、「クラウドでクエリが正常に実行されているか」を参照してください。For an in-depth troubleshooting procedure, see Is my query running fine in the cloud?.

エラー 40551:TEMPDB の使用量が多すぎるため、セッションを終了しましたError 40551: The session has been terminated because of excessive TEMPDB usage

40551: The session has been terminated because of excessive TEMPDB usage. Try modifying your query to reduce the temporary table space usage.

この問題を回避するには、次の手順に従ってください。To work around this issue, follow these steps:

  1. クエリを変更して、一時テーブル領域の使用量を減らします。Change the queries to reduce temporary table space usage.
  2. 不要になった一時オブジェクトを削除します。Drop temporary objects after they're no longer needed.
  3. テーブルを切り捨てるか、使用されていないテーブルを削除します。Truncate tables or remove unused tables.

エラー 40552:トランザクション ログの使用領域が多すぎるため、セッションを終了しましたError 40552: The session has been terminated because of excessive transaction log space usage

40552: The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.

この問題を解決するには、次の方法を試してください。To resolve this issue, try the following methods:

  • この問題は、挿入、更新、または削除の各操作が原因で発生する可能性があります。The issue can occur because of insert, update, or delete operations. バッチ処理を実装したり、複数の小さなトランザクションに分割したりして、すぐに操作される行の数を減らしてみてください。Try to reduce the number of rows that are operated on immediately by implementing batching or splitting into multiple smaller transactions.

  • この問題は、インデックスの再構築操作によって発生する可能性があります。The issue can occur because of index rebuild operations. この問題を回避するには、テーブルで影響を受ける行の数 * (更新されるフィールドの平均サイズ (バイト単位) + 80) < 2 ギガバイト (GB) であることを確認します。To work around this issue, make sure the number of rows that are affected in the table * (average size of field that's updated in bytes + 80) < 2 gigabytes (GB).

    注意

    インデックスの再構築の場合は、更新されるフィールドの平均サイズを、平均インデックス サイズに置き換える必要があります。For an index rebuild, the average size of the field that's updated should be substituted by the average index size.

エラー 40553:メモリの使用量が多すぎるため、セッションを終了しましたError 40553: The session has been terminated because of excessive memory usage

40553 : The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.

この問題を回避するには、クエリを最適化してみてください。To work around this issue, try to optimize the query.

詳細なトラブルシューティング手順については、「クラウドでクエリが正常に実行されているか」を参照してください。For an in-depth troubleshooting procedure, see Is my query running fine in the cloud?.

その他のリソース ガバナンス エラー メッセージの表Table of additional resource governance error messages

エラー コードError code 重大度Severity [説明]Description
1092810928 2020 リソース ID: %d。Resource ID: %d. データベースの %s 制限の %d に達しました。The %s limit for the database is %d and has been reached. 詳細については、「単一データベースとプールされたデータベースに関する SQL Database のリソース制限」を参照してください。For more information, see SQL Database resource limits for single and pooled databases.

リソース ID は、制限に達したリソースを示します。The Resource ID indicates the resource that has reached the limit. ワーカー スレッドの場合、リソース ID = 1 となります。For worker threads, the Resource ID = 1. セッションの場合、リソース ID = 2 です。For sessions, the Resource ID = 2.

このエラーの詳細および解決方法については、For more information about this error and how to resolve it, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
1092910929 2020 リソース ID: %d。Resource ID: %d. %s の最低限保証は %d、最大値は %d 、データベースの現在の使用状況は %d です。The %s minimum guarantee is %d, maximum limit is %d, and the current usage for the database is %d. ただし、サーバーは現在ビジー状態であり、このデータベースの %d を超える要求をサポートできません。However, the server is currently too busy to support requests greater than %d for this database. リソース ID は、制限に達したリソースを示します。The Resource ID indicates the resource that has reached the limit. ワーカー スレッドの場合、リソース ID = 1 となります。For worker threads, the Resource ID = 1. セッションの場合、リソース ID = 2 です。For sessions, the Resource ID = 2. 詳細については、次を参照してください。For more information, see:
•  データベース サーバーのリソース制限•  Database server resource limits
•  単一データベースに関する DTU ベースの制限•  DTU-based limits for single databases
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
それ以外の場合は、後でもう一度やり直してください。Otherwise, please try again later.
4054440544 2020 データベースのサイズ クォータに達しました。The database has reached its size quota. データをパーティション分割するか、データを削除するか、インデックスを削除してください。その他の解決方法についてはドキュメントを参照してください。Partition or delete data, drop indexes, or consult the documentation for possible resolutions. データベースのスケーリングについては、単一データベースのリソースのスケーリングに関する記事と、エラスティック プールのリソースのスケーリングに関する記事を参照してください。For database scaling, see Scale single database resources and Scale elastic pool resources.
4054940549 1616 トランザクションが長時間実行されているため、セッションを終了しました。Session is terminated because you have a long-running transaction. トランザクションを短くしてください。Try shortening your transaction. バッチ処理については、「バッチ処理を使用して SQL Database アプリケーションのパフォーマンスを強化する方法」を参照してください。For information on batching, see How to use batching to improve SQL Database application performance.
4055040550 1616 取得したロックの数が多すぎるため、セッションを終了しました。The session has been terminated because it has acquired too many locks. 1 つのトランザクションで読み取る行または変更する行の数を減らしてください。Try reading or modifying fewer rows in a single transaction. バッチ処理については、「バッチ処理を使用して SQL Database アプリケーションのパフォーマンスを強化する方法」を参照してください。For information on batching, see How to use batching to improve SQL Database application performance.
4055140551 1616 TEMPDB の使用領域が多すぎるため、セッションを終了しました。The session has been terminated because of excessive TEMPDB usage. クエリを変更して一時テーブルの使用領域を減らしてください。Try modifying your query to reduce the temporary table space usage.

一時オブジェクトを使用している場合は、セッションで不要となった一時オブジェクトを削除して TEMPDB データベースの領域を節約してください。If you are using temporary objects, conserve space in the TEMPDB database by dropping temporary objects after they are no longer needed by the session. SQL Database での tempdb の使用については、「SQL Database の Tempdb データベース」を参照してください。For more information on tempdb usage in SQL Database, see Tempdb database in SQL Database.
4055240552 1616 トランザクション ログの使用領域が多すぎるため、セッションを終了しました。The session has been terminated because of excessive transaction log space usage. 1 回のトランザクションで変更する行を減らしてください。Try modifying fewer rows in a single transaction. バッチ処理については、「バッチ処理を使用して SQL Database アプリケーションのパフォーマンスを強化する方法」を参照してください。For information on batching, see How to use batching to improve SQL Database application performance.

bcp.exe ユーティリティまたは System.Data.SqlClient.SqlBulkCopy クラスを使用して一括挿入を実行する場合は、1 回のトランザクションでサーバーにコピーされる行数を -b batchsize オプションまたは BatchSize オプションで制限してください。If you perform bulk inserts using the bcp.exe utility or the System.Data.SqlClient.SqlBulkCopy class, try using the -b batchsize or BatchSize options to limit the number of rows copied to the server in each transaction. ALTER INDEX ステートメントでインデックスを再構築する場合は、REBUILD WITH ONLINE = ON オプションの使用を検討してください。If you are rebuilding an index with the ALTER INDEX statement, try using the REBUILD WITH ONLINE = ON option. 仮想コア購入モデルでのトランザクション ログ サイズについては、次を参照してください。For information on transaction log sizes for the vCore purchasing model, see:
•  単一データベースに関する仮想コアベースの制限•  vCore-based limits for single databases
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools
•  マネージド インスタンスのリソースの制限.•  Managed instance resource limits.
4055340553 1616 メモリの使用量が多すぎるため、セッションを終了しました。The session has been terminated because of excessive memory usage. クエリを変更して、処理する行を減らしてください。Try modifying your query to process fewer rows.

Transact-SQL コード内の ORDER BY 操作と GROUP BY 操作の数を減らすことで、クエリのメモリ要件を抑えられます。Reducing the number of ORDER BY and GROUP BY operations in your Transact-SQL code reduces the memory requirements of your query. データベースのスケーリングについては、単一データベースのリソースのスケーリングに関する記事と、エラスティック プールのリソースのスケーリングに関する記事を参照してください。For database scaling, see Scale single database resources and Scale elastic pool resources.

エラスティック プールのエラーElastic pool errors

次のエラーは、エラスティック プールの作成と使用に関連しています。The following errors are related to creating and using elastic pools:

エラー コードError code 重大度Severity [説明]Description 是正措置Corrective action
11321132 1717 エラスティック プールが、その記憶域の上限に達しました。The elastic pool has reached its storage limit. エラスティック プールの記憶域の使用率が (%d) MB を超えることはできません。The storage usage for the elastic pool cannot exceed (%d) MBs. エラスティック プールの記憶域が上限に達したときに、データベースにデータを書き込もうとしています。Attempting to write data to a database when the storage limit of the elastic pool has been reached. リソース制限については、以下を参照してください。For information on resource limits, see:
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools.
可能であれば、エラスティック プールの DTU を増やすかストレージを追加して、その記憶域の上限を上げることを検討するか、エラスティック プール内の個々のデータベースで使用される記憶域を減らすか、あるいはエラスティック プールからデータベースを削除してください。Consider increasing the DTUs of and/or adding storage to the elastic pool if possible in order to increase its storage limit, reduce the storage used by individual databases within the elastic pool, or remove databases from the elastic pool. エラスティック プールのスケーリングについては、エラスティック プールのリソースのスケーリングに関する記事を参照してください。For elastic pool scaling, see Scale elastic pool resources.
1092910929 1616 %s の最低限保証は %d、最大値は %d 、データベースの現在の使用状況は %d です。The %s minimum guarantee is %d, maximum limit is %d, and the current usage for the database is %d. ただし、サーバーは現在ビジー状態であり、このデータベースの %d を超える要求をサポートできません。However, the server is currently too busy to support requests greater than %d for this database. リソース制限については、以下を参照してください。For information on resource limits, see:
•  エラスティック プールに関する DTU ベースの制限•  DTU-based limits for elastic pools
•  エラスティック プールに関する仮想コアベースの制限•  vCore-based limits for elastic pools.
それ以外の場合は、後でもう一度やり直してください。Otherwise, please try again later. データベースあたりの DTU/仮想コア最小値、データベースあたりの DTU/仮想コア最大値。DTU / vCore min per database; DTU / vCore max per database. エラスティック プール内のすべてのデータベース間での同時実行ワーカー (要求) の合計数が、プールの制限を超えようとしました。The total number of concurrent workers (requests) across all databases in the elastic pool attempted to exceed the pool limit.
可能であれば、エラスティック プールの DTU または仮想コアを増やしてワーカーの上限を上げることを検討するか、エラスティック プールからデータベースを削除してください。Consider increasing the DTUs or vCores of the elastic pool if possible in order to increase its worker limit, or remove databases from the elastic pool.
4084440844 1616 サーバー '%ls' のデータベース '%ls' は、エラスティック プールの '%ls' エディションのデータベースであり、連続コピー リレーションシップを持つことはできません。Database '%ls' on Server '%ls' is a '%ls' edition database in an elastic pool and cannot have a continuous copy relationship. 該当なしN/A
4085740857 1616 サーバー '%ls ' のエラスティック プールが見つかりませんでした。エラスティック プール名は ' %ls ' です。Elastic pool not found for server: '%ls', elastic pool name: '%ls'. 指定されたエラスティック プールが、指定されたサーバー内にありません。Specified elastic pool does not exist in the specified server. 有効なエラスティック プール名を指定してください。Provide a valid elastic pool name.
4085840858 1616 エラスティック プール '%ls' は サーバー '%ls' に既に存在します。Elastic pool '%ls' already exists in server: '%ls'. 指定されたエラスティック プールは、指定された SQL Database サーバー内に既に存在します。Specified elastic pool already exists in the specified SQL Database server. 新しいエラスティック プール名を指定してください。Provide new elastic pool name.
4085940859 1616 エラスティック プールでは、サービス階層 '%ls' はサポートされていません。Elastic pool does not support service tier '%ls'. 指定されたサービス階層は、エラスティック プールのプロビジョニングにはサポートされていません。Specified service tier is not supported for elastic pool provisioning. 正しいエディションを指定するか、既定のサービス階層を使用する場合はサービス階層を空のままにしてください。Provide the correct edition or leave service tier blank to use the default service tier.
4086040860 1616 エラスティック プール '%ls' とサービス目標 '%ls' の組み合わせが正しくありません。Elastic pool '%ls' and service objective '%ls' combination is invalid. エラスティック プールとサービス レベルは、リソース タイプが 'ElasticPool' に指定されている場合にのみ同時に指定できます。Elastic pool and service tier can be specified together only if resource type is specified as 'ElasticPool'. エラスティック プールとサービス レベルの適切な組み合わせを指定してください。Specify correct combination of elastic pool and service tier.
4086140861 1616 データベース エディション '%.ls' は、エラスティック プールのサービス層 '%.ls' と同じにする必要がありますThe database edition '%.ls' cannot be different than the elastic pool service tier which is '%. ls'. データベースのエディションがサービス階層と異なります。The database edition is different than the elastic pool service tier. エラスティック プールのサービス階層と異なるデータベース エディションを指定しないでください。Do not specify a database edition which is different than the elastic pool service tier. データベースのエディションを指定する必要がないことにご注意ください。Note that the database edition does not need to be specified.
4086240862 1616 エラスティック プールのサービス目標が指定されている場合は、エラスティック プール名を指定する必要があります。Elastic pool name must be specified if the elastic pool service objective is specified. エラスティック プールのサービス目標は、エラスティック プールを一意に識別することはできません。Elastic pool service objective does not uniquely identify an elastic pool. エラスティック プールのサービス目標を使用する場合は、エラスティック プール名を指定してください。Specify the elastic pool name if using the elastic pool service objective.
4086440864 1616 エラスティック プールの DTU は、サービス階層 '%.*ls' に対して (%d) DTU 以上である必要があります。The DTUs for the elastic pool must be at least (%d) DTUs for service tier '%.*ls'. 最小値を下回るエラスティック プールの DTU を設定しようとしています。Attempting to set the DTUs for the elastic pool below the minimum limit. エラスティック プールの DTU を最小値以上に設定し直してください。Retry setting the DTUs for the elastic pool to at least the minimum limit.
4086540865 1616 エラスティック プールの DTU は、サービス階層 '%.*ls' に対して (%d) DTU を超えることはできません。The DTUs for the elastic pool cannot exceed (%d) DTUs for service tier '%.*ls'. エラスティック プールの DTU を最大値を超える値に設定しようとしています。Attempting to set the DTUs for the elastic pool above the maximum limit. エラスティック プールの DTU を最大値を超えないように設定し直してください。Retry setting the DTUs for the elastic pool to no greater than the maximum limit.
4086740867 1616 データベースあたりの DTU の最大値は、サービス階層 '%.*ls' (%d) 以上である必要があります。The DTU max per database must be at least (%d) for service tier '%.*ls'. サポートされている制限を下回るデータベースあたりの DTU 最大値を設定しようとしています。Attempting to set the DTU max per database below the supported limit. 目的の設定をサポートするエラスティック プールのサービス階層を使用することをご検討ください。Consider using the elastic pool service tier that supports the desired setting.
4086840868 1616 データベースあたりの DTU の最大値は、サービス階層 '%.*ls' に対して (%d) を超えることはできません。The DTU max per database cannot exceed (%d) for service tier '%.*ls'. サポートされている制限を超えるデータベースあたりの DTU 最大値を設定しようとしています。Attempting to set the DTU max per database beyond the supported limit. 目的の設定をサポートするエラスティック プールのサービス階層を使用することをご検討ください。Consider using the elastic pool service tier that supports the desired setting.
4087040870 1616 データベースあたりの DTU 最小値は、サービス階層 '%.*ls' に対して (%d) を超えることはできません。The DTU min per database cannot exceed (%d) for service tier '%.*ls'. サポートされている制限を超えるデータベースあたりの DTU 最小値を設定しようとしています。Attempting to set the DTU min per database beyond the supported limit. 目的の設定をサポートするエラスティック プールのサービス階層を使用することをご検討ください。Consider using the elastic pool service tier that supports the desired setting.
4087340873 1616 データベース数 (%d) と データベースあたりの DTU の最小値 (%d) は、エラスティック プールの DTU (%d) を超えることはできません。The number of databases (%d) and DTU min per database (%d) cannot exceed the DTUs of the elastic pool (%d). エラスティック プールの DTU を超えるエラスティック プール内のデータベースあたりの DTU 最小値を指定しようとしています。Attempting to specify DTU min for databases in the elastic pool that exceeds the DTUs of the elastic pool. エラスティック プールの DTU を増やすか、データベースあたりの DTU 最小値を減らす、またはエラスティック プール内のデータベース数を減らすことをご検討ください。Consider increasing the DTUs of the elastic pool, or decrease the DTU min per database, or decrease the number of databases in the elastic pool.
4087740877 1616 データベースが含まれていない場合を除いて、エラスティック プールを削除できません。An elastic pool cannot be deleted unless it does not contain any databases. エラスティック プールに、1 つ以上のデータベースが含まれているため、削除できません。The elastic pool contains one or more databases and therefore cannot be deleted. エラスティック プールからデータベースを削除して、エラスティック プールを削除してください。Remove databases from the elastic pool in order to delete it.
4088140881 1616 エラスティック プール '%.*ls' のデータベース数が上限に達しました。The elastic pool '%.*ls' has reached its database count limit. エラスティック プールのデータベース数上限は、(%d) DTU を含むエラスティック プールの場合、(%d) を超えることはできません。The database count limit for the elastic pool cannot exceed (%d) for an elastic pool with (%d) DTUs. エラスティック プールのデータベース数が上限に達したときに、データベースを作成またはエラスティック プールにデータベースを追加しようとしています。Attempting to create or add database to elastic pool when the database count limit of the elastic pool has been reached. 可能であれば、エラスティック プールの DTU を増やして、データベースの上限を上げることを検討するか、エラスティック プールからデータベースを削除してください。Consider increasing the DTUs of the elastic pool if possible in order to increase its database limit, or remove databases from the elastic pool.
4088940889 1616 エラスティック プール '%.*ls' の DTU または記憶域の上限を下げることはできません。下げると、データベースに十分な記憶域スペースを提供できなくなるためです。The DTUs or storage limit for the elastic pool '%.*ls' cannot be decreased since that would not provide sufficient storage space for its databases. 記憶域の使用率を下回るエラスティック プールの記憶域の上限を下げようとしています。Attempting to decrease the storage limit of the elastic pool below its storage usage. エラスティック プール内の個々のデータベースの記憶域使用率を減らすことを検討するか、その DTU または記憶域の上限を下げるためにプールからデータベースを削除してください。Consider reducing the storage usage of individual databases in the elastic pool or remove databases from the pool in order to reduce its DTUs or storage limit.
4089140891 1616 データベースあたりの DTU 最小値 (%d) は、データベースあたりの DTU 最大値 (%d) を超えることはできません。The DTU min per database (%d) cannot exceed the DTU max per database (%d). データベースあたりの DTU 最大値を超えるデータベースあたりの DTU 最小値を設定しようとしています。Attempting to set the DTU min per database higher than the DTU max per database. データベースあたりの DTU の最小値がデータベースあたりの DTU 最大値を超えていないことをご確認ください。Ensure the DTU min per databases does not exceed the DTU max per database.
TBDTBD 1616 エラスティック プール内の個々のデータベースの記憶域サイズは、サービス階層のエラスティック プール '%.*ls' で許可されている最大サイズを超えることはできません。The storage size for an individual database in an elastic pool cannot exceed the max size allowed by '%.*ls' service tier elastic pool. データベースの最大サイズが、エラスティック プールのサービス階層によって許可されている最大サイズを超えています。The max size for the database exceeds the max size allowed by the elastic pool service tier. データベースの最大サイズを、エラスティック プールのサービス階層によって許可されている最大サイズの制限内に設定してください。Set the max size of the database within the limits of the max size allowed by the elastic pool service tier.

このログインで要求されたデータベース "master" を開けません。Cannot open database "master" requested by the login. ログインに失敗しましたThe login failed

この問題は、アカウントに master データベースにアクセスするアクセス許可がないために発生します。This issue occurs because the account doesn't have permission to access the master database. しかし、既定では、SQL Server Management Studio (SSMS) で master データベースへの接続が試行されます。But by default, SQL Server Management Studio (SSMS) tries to connect to the master database.

この問題を解決するには、次の手順に従ってください。To resolve this issue, follow these steps:

  1. SSMS のログイン画面で [オプション] を選択してから、 [接続プロパティ] を選択します。On the login screen of SSMS, select Options, and then select Connection Properties.

  2. [データベースに接続] フィールドで、既定のログイン データベースとしてユーザーの既定のデータベース名を入力し、 [接続] を選択します。In the Connect to database field, enter the user’s default database name as the default login database, and then select Connect.

    接続のプロパティ

エラーの原因が接続の問題かどうかを確認するConfirm whether an error is caused by a connectivity issue

接続の問題が原因でエラーが発生しているかどうかを確認するには、次のような接続を開くための呼び出しを示すフレームのスタック トレースを確認します (SqlConnection クラスへの参照に注意)。To confirm whether an error is caused by a connectivity issue, review the stack trace for frames that show calls to open a connection like the following ones (note the reference to the SqlConnection class):

System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
 at System.Data.SqlClient.SqlConnection.Open()
 at AzureConnectionTest.Program.Main(String[] args)
ClientConnectionId:<Client connection ID>

クエリの問題によって例外がトリガーされた場合、次のような呼び出し履歴が表示されます (SqlCommand クラスへの参照に注意)。When the exception is triggered by query issues, you'll notice a call stack that's similar to the following (note the reference to the SqlCommand class). このような場合は、クエリを調整します。In this situation, tune your queries.

  at System.Data.SqlClient.SqlCommand.ExecuteReader()
  at AzureConnectionTest.Program.Main(String[] args)
  ClientConnectionId:<Client ID>

パフォーマンスの微調整に関する詳細なガイダンスについては、以下のリソースを参照してください。For additional guidance on fine-tuning performance, see the following resources:

一般的な接続に関する問題を修正するための手順Steps to fix common connection issues

  1. アプリケーション サーバーで TCP/IP がクライアント プロトコルとして有効になっていることを確認します。Make sure that TCP/IP is enabled as a client protocol on the application server. 詳細については、「クライアント プロトコルの構成」を参照してください。For more information, see Configure client protocols. SQL Server ツールがインストールされていないアプリケーション サーバーでは、cliconfg.exe (SQL Server クライアント ネットワーク ユーティリティ) を実行して、TCP/IP が有効になっていることを確認します。On application servers where you don't have SQL Server tools installed, verify that TCP/IP is enabled by running cliconfg.exe (SQL Server Client Network utility).

  2. アプリケーションの接続文字列を調べ、正しく構成されていることを確認します。Check the application’s connection string to make sure it's configured correctly. たとえば、接続文字列で正しいポート (1433) と完全修飾サーバー名が指定されていることを確認します。For example, make sure that the connection string specifies the correct port (1433) and fully qualified server name. SQL Server の接続情報を取得する」を参照してください。See Get SQL Server connection information.

  3. 接続タイムアウトの値を増やしてみます。Try increasing the connection timeout value. 30 秒以上の接続タイムアウトを使用することをお勧めします。We recommend using a connection timeout of at least 30 seconds.

  4. SQL Server Management Studio (SSMS)、UDL ファイル、ping、または telnet を使用して、アプリケーション サーバーと Azure SQL データベース間の接続をテストします。Test the connectivity between the application server and the Azure SQL database by using SQL Server management Studio (SSMS), a UDL file, ping, or telnet. 詳細については、SQL Server の接続問題のトラブルシューティング接続問題の診断に関する記事を参照してください。For more information, see Troubleshooting SQL Server connectivity issues and Diagnostics for connectivity issues.

    注意

    トラブルシューティングの手順として、別のクライアント コンピューターでの接続をテストすることもできます。As a troubleshooting step, you can also test connectivity on a different client computer.

  5. ベスト プラクティスとして、再試行ロジックが実施されていることを確認します。As a best practice, make sure that the retry logic is in place. 再試行ロジックの詳細については、SQL Database に関する一時的な障害と接続エラーのトラブルシューティングについての記事を参照してください。For more information about retry logic, see Troubleshoot transient faults and connection errors to SQL Database.

これらの手順で問題が解決しない場合は、さらにデータを収集してから、サポートに連絡してみてください。If these steps don't resolve your problem, try to collect more data and then contact support. アプリケーションがクラウド サービスの場合は、ログ記録を有効にします。If your application is a cloud service, enable logging. この手順により、エラーの UTC タイムスタンプが返されます。This step returns a UTC time stamp of the failure. さらに、SQL Azure によりトレース ID が返されます。Additionally, SQL Azure returns the tracing ID. Microsoft カスタマー サポート サービスはこの情報を使用できます。Microsoft Customer Support Services can use this information.

ログ記録を有効にする方法の詳細については、「Azure App Service でのアプリの診断ログの有効化」を参照してください。For more information about how to enable logging, see Enable diagnostics logging for apps in Azure App Service.

次のステップNext steps