Sdílet prostřednictvím


Řešení potíží s připojením a dalších chyb

Platí pro: Azure SQL Database Azure SQL Managed Instance SQL Database v prostředcích infrastruktury

Při selhání připojení ke službě Azure SQL Database, Databázi Fabric SQL nebo službě Azure SQL Managed Instance se zobrazí chybové zprávy.

Jako vždy používejte osvědčené postupy a pokyny k návrhu aplikace .

Poznámka:

Pomocí nástroje Azure SQL Connectivity Checker můžete zjišťovat a opravovat širokou škálu chyb připojení.

Postup řešení běžných potíží s připojením

  1. Ujistěte se, že je na aplikačním serveru povolený protokol TCP/IP jako klientský protokol. Na aplikačníchserverch cliconfg.exe ch

  2. Zkontrolujte připojovací řetězec aplikace a ujistěte se, že je správně nakonfigurovaná. Ujistěte se například, že připojovací řetězec určuje správný port (1433) a plně kvalifikovaný název serveru. Viz Získání informací o připojení pomocí aplikace SQL Server Management Studio.

  3. Zkuste zvýšit hodnotu časového limitu připojení. Doporučujeme použít časový limit připojení nejméně 30 sekund.

  4. Otestujte připojení mezi aplikačním serverem a službou Azure SQL Database pomocí rychlého startu: Pomocí aplikace SSMS se připojte ke službě Azure SQL Database nebo azure SQL Managed Instance, souboru UDL, příkazu ping nebo telnetu a dotazování na službu Azure SQL Database nebo azure SQL Managed Instance. Další informace najdete v tématu Řešení potíží s připojením a diagnostika problémů s připojením.

    Poznámka:

    Jako krok pro řešení potíží můžete také otestovat připojení na jiném klientském počítači.

  5. Osvědčeným postupem je, že aplikace připojené ke cloudu musí používat logiku opakování.

Pokud tyto kroky váš problém nevyřeší, zkuste shromáždit další data a kontaktovat podporu. Pokud je vaše aplikace cloudová služba, povolte protokolování. Tento krok vrátí časové razítko UTC selhání. Další informace o povolení protokolování najdete v tématu Povolení protokolování diagnostiky pro aplikace ve službě Aplikace Azure Service. Sql Database navíc vrátí ID trasování. Tyto informace můžou využívat služby zákaznické podpory Microsoftu.

Implementace logiky opakování

Důrazně doporučujeme, aby vaše klientské aplikace používaly logiku opakování, aby mohly znovu vytvořit připojení po uplynutí přechodné doby chyby, aby se opravil. Doporučujeme, abyste před prvním opakováním zpozdili 5 sekund. Opakování po zpoždění kratším než 5 sekund riskuje zahlcení cloudové služby. U každého dalšího opakování by se zpoždění mělo exponenciálně zvětšit až na 60 sekund.

Příklady kódu logiky opakování najdete tady:

Další informace o zpracovánípřechodných

Diskuze o době blokování pro klienty, kteří používají ADO.NET, je k dispozici ve fondu připojení (ADO.NET).

Přechodné chybové zprávy chyb (40197, 40613 a další)

Když ve službě SQL Database dojde k vysokému zatížení, infrastruktura Azure dokáže dynamicky rekonfigurovat servery. Toto dynamické chování může způsobit, že váš klientský program ztratí připojení k databázi nebo instanci. Tento druh chybového stavu se nazývá přechodná chyba. K událostem rekonfigurace databáze dochází kvůli plánovaným událostem (např. upgrade softwaru) nebo neplánovaným událostem (např. chybové ukončení procesu nebo vyrovnávání zatížení). Většina událostí rekonfigurace je krátkodobá a měla by být dokončena maximálně za 60 sekund. Dokončení těchto událostí však může občas trvat delší dobu, například když velká transakce způsobí dlouhotrvající obnovení. Následující tabulka uvádí různé přechodné chyby, které můžou aplikace obdržet při připojování ke službě Azure SQL Database.

Seznam kódů přechodných chyb chyb

Kód chyby Závažnost Popis
926 14 Database 'replicatedmaster' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server error log for more information.

Tato chyba může být protokolována v protokolu chyb služby SQL Managed Instance po krátkou dobu během poslední fáze rekonfigurace, zatímco starý primární protokol vypne.
Jiné nepřehledné scénáře zahrnující tuto chybovou zprávu jsou popsány v dokumentaci k chybám MSSQL.
4060 16 Cannot open database "%.*ls" requested by the login. The login failed.

Další informace naleznete v tématu Chyby 4000 až 4999
40197 17 The service has encountered an error processing your request. Please try again. Error code %d.

Tato chyba se zobrazí, když je služba mimo provoz kvůli upgradům softwaru nebo hardwaru, selháním hardwaru nebo jiným problémům s převzetím služeb při selhání. Kód chyby (%d) vložený do zprávy chyby 40197 poskytuje další informace o druhu selhání nebo převzetí služeb při selhání, ke kterému došlo. Některé příklady kódů chyb jsou vloženy do zprávy chyby 40197 jsou 40020, 40143, 40166 a 40540.
Opětovným připojením se automaticky připojíte ke správné kopii databáze. Aplikace musí zachytit chybu 40197, protokolovat vložený kód chyby (%d) ve zprávě pro řešení potíží a pokusit se znovu připojit ke službě SQL Database, dokud nebudou k dispozici prostředky, a vaše připojení se znovu naváže. Další informace najdete v části Přechodné chyby.
40501 20 The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.

Další informace najdete tady: .
Správa prostředků.
Limity prostředků pro elastické fondy využívající nákupní model DTU
Omezení založená na virtuálních jádrech pro izolované databáze.
Omezení založená na virtuálních jádrech pro elastické fondy.
Limity prostředků služby Azure SQL Managed Instance
40613 17 Database '%.*ls' on server '%.*ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them with the session tracing ID of '%.*ls'.

K této chybě může dojít, pokud už existuje existující vyhrazené připojení správce (DAC) vytvořené k databázi. Další informace najdete v části Přechodné chyby.
49918 16 Cannot process request. Not enough resources to process request. The service is currently busy. Please retry the request later.

Další informace najdete tady: .
Správa prostředků.
Limity prostředků pro elastické fondy využívající nákupní model DTU
Omezení založená na virtuálních jádrech pro izolované databáze.
Omezení založená na virtuálních jádrech pro elastické fondy.
Limity prostředků služby Azure SQL Managed Instance
49919 16 Cannot process create or update request. Too many create or update operations in progress for subscription "%ld".

Služba je zaneprázdněna zpracováním více žádostí o vytvoření nebo aktualizaci pro vaše předplatné nebo server. Žádosti jsou aktuálně blokované pro optimalizaci prostředků. Dotaz sys.dm_operation_status pro čekající operace. Počkejte na dokončení žádosti o vytvoření nebo aktualizaci čekající na vytvoření nebo aktualizaci a zkuste žádost zopakovat později. Pokud se zdá, že jsou vaše operace zablokované, počkejte na dokončení dalších probíhajících operací nebo je v případě potřeby zrušte. Můžete například zrušit kopírování databáze nebo vytvoření geografické repliky odstraněním vytvářené databáze nebo repliky. Pokud se nepodaří zrušit zdánlivě zablokované operace, otevřete lístek podpory s Microsoftem.
49920 16 Cannot process request. Too many operations in progress for subscription "%ld".

Služba je zaneprázdněna zpracováním více požadavků pro toto předplatné. Žádosti jsou aktuálně blokované pro optimalizaci prostředků. Dotaz sys.dm_operation_status pro stav operace. Počkejte na dokončení čekajících požadavků nebo odstraňte některý z čekajících požadavků a zkuste žádost zopakovat později. Pokud se zdá, že jsou vaše operace zablokované, počkejte na dokončení dalších probíhajících operací nebo je v případě potřeby zrušte. Můžete například zrušit kopírování databáze nebo vytvoření geografické repliky odstraněním vytvářené databáze nebo repliky. Pokud se nepodaří zrušit zdánlivě zablokované operace, otevřete lístek podpory s Microsoftem.
4221 16 Login to read-secondary failed due to long wait on 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING'.

Replika není k dispozici pro přihlášení, protože verze řádků chybí pro transakce, které byly v testovacím prostředí při recyklaci repliky. Tento problém lze vyřešit vrácením zpět nebo potvrzením aktivních transakcí na primární replice. Výskyty této podmínky je možné minimalizovat tím, že se v primárním počítači zabrání dlouhým transakcím zápisu.
615 21 Could not find database ID %d, name '%.*ls'

To znamená, že mezipaměť v paměti se nesynchronizuje s instancí SQL Serveru a vyhledávání načítají zastaralé ID databáze.

Přihlášení SQL používají mezipaměť v paměti k získání názvu databáze na mapování ID. Mezipaměť by se měla synchronizovat s back-endovou databází a aktualizovat ji vždy, když dojde k připojení a odpojení databáze k instanci SERVERU SQL.
Tato chyba se zobrazí, když se pracovní postup odpojení nepodaří vyčistit mezipaměť v paměti včas a následné vyhledávání do bodu databáze na zastaralé ID databáze.
Zkuste se znovu připojit ke službě SQL Database, dokud nebude prostředek k dispozici, a připojení se znovu naváže. Další informace najdete v části Přechodné chyby.

Postup řešení přechodných problémů s připojením

  1. Na řídicím panelu služby Microsoft Azure zkontrolujte případné známé výpadky, ke kterým došlo během doby, během které aplikace hlásí.
  2. Aplikace, které se připojují ke cloudové službě, jako je Azure SQL Database, by měly očekávat pravidelné události rekonfigurace a implementovat logiku opakování, která tyto chyby zpracuje, místo aby uživatelům nezovládaly chyby aplikace.
  3. Vzhledem k tomu, že databáze přistupuje k limitům prostředků, může se zdát, že se jedná o přechodný problém s připojením. Viz Omezení prostředků.
  4. Pokud potíže s připojením budou pokračovat nebo pokud doba trvání, po kterou se u vaší aplikace zobrazí chyba, překročí 60 sekund nebo pokud se v daném dni zobrazí více výskytů chyby, vytvořte podpora Azure žádost výběrem možnosti Získat podporu na webu podpory Azure.

K tomuto problému dochází, pokud se aplikace nemůže připojit k serveru.

Pokud chcete tento problém vyřešit, vyzkoušejte kroky (v uvedeném pořadí) v části Kroky a opravte běžné problémy s připojením.

Server nebo instance nebyla nalezena nebo nebyla přístupná (chyby 26, 40, 10053)

Chyba 26: Chyba při vyhledání zadaného serveru

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)

Chyba 40: Nepodařilo se otevřít připojení k serveru

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)

Chyba 10053: Při příjmu výsledků ze serveru došlo k chybě na úrovni přenosu

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)

K těmto problémům dochází v případě, že se aplikace nemůže připojit k serveru.

Pokud chcete tyto problémy vyřešit, vyzkoušejte kroky (v uvedeném pořadí) v části Kroky a opravte běžné problémy s připojením.

Nejde se připojit k serveru kvůli problémům s bránou firewall

Chyba 40615: Nejde se připojit k < názvu serveru >

Pokud chcete tento problém vyřešit, nakonfigurujte nastavení brány firewall ve službě SQL Database prostřednictvím webu Azure Portal.

Chyba 5: Nejde se připojit k < názvu serveru >

Pokud chcete tento problém vyřešit, ujistěte se, že je port 1433 otevřený pro odchozí připojení na všech branách firewall mezi klientem a internetem.

Nejde se přihlásit k serveru (chyby 18456, 40531)

Přihlášení uživatele uživatelské< jméno >se nezdařilo.

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)

Pokud chcete tento problém vyřešit, požádejte správce služeb, aby vám poskytl platné uživatelské jméno a heslo.

Správce služby obvykle může pomocí následujícího postupu přidat přihlašovací údaje:

  1. Přihlaste se k serveru pomocí aplikace SQL Server Management Studio (SSMS).

  2. Pokud chcete zkontrolovat, jestli je přihlašovací jméno zakázané, spusťte v master databázi následující dotaz SQL:

    SELECT name, is_disabled FROM sys.sql_logins;
    
  3. Pokud je odpovídající název zakázaný, můžete se rozhodnout ho povolit pomocí následujícího příkazu:

    ALTER LOGIN <User name> ENABLE;
    
  4. Pokud přihlašovací uživatelské jméno SQL neexistuje, upravte a spusťte následující dotaz SQL a vytvořte nové přihlášení SQL:

    CREATE LOGIN <SQL_login_name, sysname, login_name>
    WITH PASSWORD = '<password, sysname, Change_Password>';
    GO
    
  5. V nástroji SSMS Průzkumník objektů rozbalte položku Databáze.

  6. Vyberte databázi, ke které chcete uživateli udělit oprávnění.

  7. Klepněte pravým tlačítkem myši na položku Zabezpečení a potom vyberte Nový, Uživatel.

  8. Ve vygenerovaném skriptu se zástupnými symboly nahraďte parametry šablony SSMS postupem, například:

    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
    

    Můžete také použít sp_addrolemember k mapování konkrétních uživatelů na konkrétní databázové role.

    Poznámka:

    Ve službě Azure SQL Database zvažte novější syntaxi ALTER ROLE pro správu členství v rolích databáze.

Další informace naleznete v tématu Autorizace přístupu k databázi.

Chyby vypršení časového limitu připojení

System.Data.SqlClient.SqlException (0x80131904): Vypršel časový limit připojení

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): Vypršel časový limit

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: Základní zprostředkovatel selhal při otevření

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

Nejde se připojit k < názvu serveru >

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

K těmto výjimkám může dojít buď kvůli problémům s připojením nebo dotazem. Pokud chcete ověřit, že problémy s připojením způsobily tuto chybu, přečtěte si téma Potvrzení, jestli je chyba způsobená problémem s připojením.

K vypršení časového limitu připojení dochází, protože se aplikace nemůže připojit k serveru. Pokud chcete tento problém vyřešit, vyzkoušejte kroky (v uvedeném pořadí) v části Kroky a opravte běžné problémy s připojením.

Chyby ukončení síťového připojení

Klientské knihovny SQL se připojují ke službě Azure SQL Database a azure SQL Managed Instance pomocí síťového protokolu TCP. Klientská knihovna používá ke správě připojení TCP komponentu nižší úrovně, která se nazývá zprostředkovatel TCP. Když zprostředkovatel PROTOKOLU TCP zjistí, že vzdálený hostitel neočekávaně ukončí existující připojení TCP, klientská knihovna vyvolá chybu. Vzhledem k tomu, že se jedná o chybu klienta, a ne o chybu sql serveru, není zahrnuté žádné číslo chyby SQL. Místo toho je číslo chyby 0 a použije se chybová zpráva od zprostředkovatele TCP.

Mezi příklady chyb ukončení síťového připojení patří:

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) An existing connection was forcibly closed by the remote host

A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

The client was unable to establish a connection because of an error during connection initialization process before login. Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy to accept new connections; or there was a resource limitation (insufficient memory or maximum allowed connections) on the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

K chybám ukončení připojení může dojít, protože databáze nebo elastický fond jsou dočasně nedostupné. Dochází k nim také z důvodu různých problémů v síťové infrastruktuře mezi databázovým serverem a klientskou aplikací, včetně bran firewall, síťových zařízení atd. Tyto problémy můžou být přechodné nebo trvalé. Obecně platí, že aplikace by měly před zvážením trvalých selhání použít pevný počet pokusů o opakování těchto chyb.

Chyby zásad správného řízení prostředků

Azure SQL Database používá implementaci zásad správného řízení prostředků založenou na správci prostředků k vynucení limitů prostředků. Přečtěte si další informace o správě prostředků ve službě Azure SQL Database.

Nejběžnější chyby zásad správného řízení prostředků jsou uvedené jako první s podrobnostmi a za nimi následuje tabulka chybových zpráv zásad správného řízení prostředků.

Chyby 10928 a 10936: ID prostředku: 1. Limit požadavků pro [databázi nebo elastický fond] je %d a byl dosažen.

Pokud dosáhnete limitu na úrovni databáze, zobrazí se podrobná chybová zpráva v tomto případě: Resource ID : 1. The request limit for the database is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance.

Pokud dosáhnete limitu elastického fondu, zobrazí se podrobná chybová zpráva v tomto případě: Resource ID : 1. The request limit for the elastic pool is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance. Limity elastického fondu jsou vyšší než limity databáze. Další informace najdete v tématu Omezení prostředků. Limity můžou být zjištěny, když více databází ve fondu používá prostředek (například pracovní procesy) souběžně.

Tato chybová zpráva označuje, že došlo k dosažení limitu pracovního procesu pro databázi nebo elastický fond. Místo zástupného symbolu %d bude k dispozici maximální hodnota souběžných pracovních procesů pro cíl služby databáze nebo elastického fondu.

Poznámka:

Počáteční nabídka služby Azure SQL Database podporovala pouze dotazy s jedním vláknem. V té době byl počet žádostí vždy ekvivalentní počtu pracovníků. Chybové zprávy 10928 a 10936 v Azure SQL Database obsahují formulaci "Limit požadavku [...] je N a bylo dosaženo" pro účely zpětné kompatibility. Dosažený limit ve skutečnosti představuje počet pracovních procesů. Pokud je nastavení maximálního stupně paralelismu (MAXDOP) rovno nule nebo je větší než jedna, může být počet pracovních procesů mnohem vyšší než počet požadavků a limit může být mnohem dříve, než když se hodnota MAXDOP rovná jednomu.

Přečtěte si další informace o relacích, pracovních pracovníkech a požadavcích.

V případě potřeby se připojte pomocí vyhrazeného připojení správce (DAC).

Pokud je aktivní incident, ve kterém je dosaženo limitu pracovního procesu, může se při připojení pomocí aplikace SQL Server Management Studio (SSMS) nebo Azure Data Studia zobrazit chyba 10928. Jedna relace se může připojit pomocí diagnostického připojení pro správce databáze (DAC), i když byla dosažena maximální prahová hodnota pracovního procesu.

Vytvoření připojení k DAC z aplikace SSMS:

  • V nabídce vyberte Soubor > nový > dotaz databázového stroje.
  • V dialogovém okně připojení v poli Název serveru zadejte admin:<fully_qualified_server_name> (například admin:servername.database.windows.net).
  • Vybrat možnosti >>
  • Výběr karty Vlastnosti připojení
  • Do pole Připojit k databázi: zadejte název databáze.
  • Vyberte Připojit.

Pokud se zobrazí chyba 40613, Database '%.&#x2a;ls' on server '%.&#x2a;ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of '%.&#x2a;ls'může to znamenat, že k DAC je již připojena jiná relace. Pouze jedna relace se může připojit k DAC pro jednu databázi nebo elastický fond najednou.

Pokud po výběru možnosti Připojit dojde k chybě Nepovedlo se připojit k serveru, relace DAC se možná úspěšně naváže, pokud používáte verzi SSMS starší než 18.9. Dřívější verze aplikace SSMS se pokusily poskytnout IntelliSense pro připojení k DAC. To se nezdařilo, protože DAC podporuje pouze jeden pracovní proces a IntelliSense vyžaduje samostatný pracovní proces.

V SSMS nemůžete použít připojení DAC s Průzkumník objektů.

Kontrola využití max_worker_percent

Pokud chcete zjistit statistiku spotřeby prostředků pro vaši databázi po dobu 14 dnů, zadejte dotaz na zobrazení sys.resource_stats systémového katalogu. Sloupec max_worker_percent zobrazuje procento pracovních procesů použitých vzhledem k limitu pracovního procesu pro vaši databázi. Připojte se k databázi na logickém master serveru a odešlete dotaz sys.resource_stats.

SELECT start_time, end_time, database_name, sku, avg_cpu_percent, max_worker_percent, max_session_percent 
FROM sys.resource_stats;

Ze sys.dm_db_resource_stats zobrazení dynamické správy můžete také dotazovat statistiky o spotřebě prostředků z poslední hodiny. Připojte se přímo k databázi a dotazujte sys.dm_db_resource_statsse .

SELECT end_time, avg_cpu_percent, max_worker_percent, max_session_percent
FROM sys.dm_db_resource_stats;

Nižší využití pracovních procesů, pokud je to možné

Blokující řetězce můžou způsobit náhlé nárůst počtu pracovních procesů v databázi. Velký objem souběžných paralelních dotazů může způsobit velký počet pracovních procesů. Zvýšení maximálního stupně paralelismu (MAXDOP) nebo nastavení MAXDOP na nulu může zvýšit počet aktivních pracovních procesů.

Při třídění incidentu s nedostatečnými pracovníky postupujte následovně:

  1. Prozkoumejte, jestli k blokování dochází nebo jestli můžete identifikovat velký objem souběžných pracovních procesů. Spuštěním následujícího dotazu zkontrolujte aktuální požadavky a zkontrolujte blokování, když databáze vrací chybu 10928. Možná se budete muset připojit pomocí vyhrazeného připojení správce (DAC) ke spuštění dotazu.

    SELECT
        r.session_id, r.request_id, r.blocking_session_id, r.start_time, 
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        (SELECT COUNT(*) 
            FROM sys.dm_os_tasks AS t 
            WHERE t.session_id=r.session_id and t.request_id=r.request_id) AS worker_count,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1;
    GO
    
    1. Vyhledejte řádky s blocking_session_id identifikací blokovaných relací. Vyhledejte jednotlivé blocking_session_id položky v seznamu, abyste zjistili, jestli je tato relace také blokovaná. Sledování hodnot blocking_session_id session_id vás nakonec povede k hlavnímu blokování: relace, která není blokovaná, ale blokuje. Vylaďte dotaz head blockeru.

      Tip

      Podrobnější informace o řešení potíží s dlouhotrvajícími nebo blokujícími dotazy najdete v tématu Vysvětlení a řešení problémů s blokováním služby Azure SQL Database.

    2. Pokud chcete identifikovat velký objem souběžných pracovních procesů, zkontrolujte celkový počet požadavků a worker_count sloupec pro každý požadavek. Worker_count je počet pracovních procesů v době vzorkování a během provádění požadavku se může v průběhu času měnit. Vylaďte dotazy, aby se snížilo využití prostředků, pokud příčinou vyšších pracovních procesů jsou souběžné dotazy, které běží v optimálním stupni paralelismu. Další informace najdete v části Ladění dotazů a pomocné parametry.

  2. Vyhodnoťte maximální stupeň paralelismu (MAXDOP) pro databázi.

Zvýšení limitů pracovních procesů

Pokud databáze nebo elastický fond konzistentně dosáhne svého limitu pracovního procesu i přes blokování, optimalizaci dotazů a ověření nastavení MAXDOP, zvažte vertikální navýšení kapacity databáze nebo elastického fondu, abyste zvýšili limit pracovního procesu.

Vyhledejte limity prostředků pro Azure SQL Database podle úrovně služby a velikosti výpočetních prostředků:

Přečtěte si další informace o zásadách správného řízení prostředků služby Azure SQL Database pracovních procesů.

Chyba 10929: ID prostředku: 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.

Chyba 40501: Služba je momentálně zaneprázdněná

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

Chyba 40501 je chyba omezování motoru, která značí překročení limitů prostředků.

Další informace o omezeních prostředků najdete v tématu Správa prostředků ve službě Azure SQL Database.

Chyba 40544: Databáze dosáhla kvóty velikosti

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>.

K této chybě dochází v případě, že databáze dosáhla kvóty velikosti.

Následující kroky vám můžou pomoct vyřešit problém nebo vám poskytnout další možnosti:

  1. Zkontrolujte aktuální velikost databáze pomocí řídicího panelu na webu Azure Portal.

    Poznámka:

    Pokud chcete zjistit, které tabulky spotřebovávají nejvíce místa, a proto jsou potenciálními kandidáty na vyčištění, spusťte následující dotaz SQL:

    SELECT o.name,
     SUM(p.row_count) AS 'Row Count',
     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;
    GO
    
  2. Pokud aktuální velikost nepřekračuje maximální podporovanou velikost pro vaši edici, můžete pomocí příkazu ALTER DATABASE zvětšit nastavení MAXSIZE.

  3. Pokud už databáze přesahuje maximální podporovanou velikost vaší edice, zkuste provést jeden nebo několik následujících kroků:

    • Proveďte běžné aktivity čištění databáze. Například vyčistěte nežádoucí data pomocí zkrácení nebo odstranění nebo přesunutí dat pomocí služby SQL Server Integration Services (SSIS) nebo nástroje pro hromadné kopírování (bcp).
    • Vytvořte oddíl nebo odstraňte data, přetáhněte indexy nebo najděte možná řešení v dokumentaci.
    • Informace o škálování databáze najdete v tématu Škálování prostředků izolované databáze a Škálování prostředků elastického fondu.

Chyba 40549: Relace je ukončena, protože máte dlouhotrvající transakci

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

Pokud se opakovaně setkáte s touto chybou, zkuste problém vyřešit pomocí následujícího postupu:

  1. Spuštěním následujícího dotazu zobrazíte všechny otevřené relace, které mají vysokou hodnotu sloupce duration_ms :

    SELECT
        r.start_time, DATEDIFF(ms,start_time, SYSDATETIME()) as duration_ms, 
        r.session_id, r.request_id, r.blocking_session_id,  
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1
    ORDER BY start_time ASC;
    GO
    

    Řádky, ze sys.fn_MSxe_read_event_streamkterých input_buffer se ve sloupci zobrazuje dotaz čtený, můžete ignorovat: tyto požadavky souvisejí s relacemi rozšířených událostí.

  2. blocking_session_id Zkontrolujte sloupec a zjistěte, jestli blokování přispívá k dlouhotrvajícím transakcím.

    Poznámka:

    Další informace o řešení potíží s blokováním ve službě Azure SQL Database najdete v tématu Vysvětlení a řešení problémů blokujících službu Azure SQL Database.

  3. Zvažte dávkování dotazů. Informace o dávkování najdete v tématu Použití dávkování ke zlepšení výkonu aplikace Azure SQL Database a Azure SQL Managed Instance.

Chyba 40551: Relace byla ukončena kvůli nadměrnému využití databáze tempdb.

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

Chcete-li tento problém vyřešit, postupujte takto:

  1. Změňte dotazy tak, aby se snížilo využití dočasného prostoru tabulky.
  2. Dočasné objekty odstraňte, jakmile už je nepotřebujete.
  3. Ořízte tabulky nebo odeberte nepoužívané tabulky.

Chyba 40552: Relace byla ukončena kvůli nadměrnému využití místa v protokolu transakcí

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

Při řešení tohoto problému zkuste použít následující metody:

Chyba 40553: Relace byla ukončena kvůli nadměrnému využití paměti

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

Pokud chcete tento problém obejít, zkuste dotaz optimalizovat.

Podrobný postup řešení potíží najdete v tématu Je můj dotaz v cloudu v pořádku?

Další informace o dalších chybách nedostatku paměti a ukázkových dotazech najdete v tématu Řešení chyb nedostatku paměti ve službě Azure SQL Database.

Tabulka chybových zpráv zásad správného řízení prostředků

Kód chyby Závažnost Popis
10928 20 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.

ID prostředku označuje prostředek, který dosáhl limitu. Pokud JE ID zdroje = 1, znamená to, že bylo dosaženo limitu pracovního procesu. Další informace najdete v tématu Chyba 10928: ID prostředku: 1. Limit požadavku pro databázi je %d a byl dosažen. Pokud JE ID prostředku = 2, znamená to, že bylo dosaženo limitu relace.
Další informace o limitech prostředků:
Správa prostředků ve službě Azure SQL Database
Limity prostředků pro nákupní model DTU
Omezení založená na virtuálních jádrech pro izolované databáze.
Limity prostředků služby Azure SQL Managed Instance
10936 20 Resource ID: %d. The %s limit for the elastic pool is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance.

ID prostředku označuje prostředek, který dosáhl limitu. Pokud JE ID zdroje = 1, znamená to, že bylo dosaženo limitu pracovního procesu. Další informace najdete v chybě 10936: ID prostředku: 1. Limit požadavku pro elastický fond je %d a byl dosažen.< a1/>. Pokud JE ID prostředku = 2, znamená to, že bylo dosaženo limitu relace.
Další informace o limitech prostředků:
Správa prostředků ve službě Azure SQL Database
Limity prostředků pro elastické fondy využívající nákupní model DTU
Omezení založená na virtuálních jádrech pro elastické fondy.
Limity prostředků služby Azure SQL Managed Instance
10929 20 Resource ID: %d. 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.

ID prostředku označuje prostředek, který dosáhl limitu. Pro pracovní vlákna id prostředku = 1. Pro relace ID prostředku = 2. Další informace najdete tady: .
Správa prostředků ve službě Azure SQL Database
Limity prostředků pro elastické fondy využívající nákupní model DTU
Omezení založená na virtuálních jádrech pro izolované databáze.
Omezení založená na virtuálních jádrech pro elastické fondy.
Limity prostředků služby Azure SQL Managed Instance
V opačném případě zkuste to znovu později.
40544 20 The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.

Informace o škálování databáze najdete v tématu Škálování prostředků izolované databáze a Škálování prostředků elastického fondu.
40549 16 Session is terminated because you have a long-running transaction. Try shortening your transaction.

Informace o dávkování najdete v tématu Použití dávkování ke zlepšení výkonu aplikace Azure SQL Database a Azure SQL Managed Instance.
40550 16 The session has been terminated because it has acquired too many locks. Try reading or modifying fewer rows in a single transaction.

Informace o dávkování najdete v tématu Použití dávkování ke zlepšení výkonu aplikace Azure SQL Database a Azure SQL Managed Instance.
40551 16 The session has been terminated because of excessive tempdb usage. Try modifying your query to reduce the temporary table space usage.

Pokud používáte dočasné objekty, zachovají se místo v tempdb databázi vyřazením dočasných objektů, které už relace nepotřebuje. Další informace o tempdb omezeních ve službě SQL Database najdete v tématu Databáze tempdb ve službě SQL Database.
40552 16 The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.

Informace o dávkování najdete v tématu Použití dávkování ke zlepšení výkonu aplikace Azure SQL Database a Azure SQL Managed Instance.
Pokud provádíte hromadné vkládání pomocí bcp.exe nástroje nebo System.Data.SqlClient.SqlBulkCopy třídy, zkuste použít -b batchsize nebo BatchSize možnosti omezit počet řádků zkopírovaných na server v každé transakci. Pokud znovu sestavíte index pomocí ALTER INDEX příkazu, zkuste použít tuto REBUILD WITH ONLINE = ON možnost. Informace o velikostech transakčních protokolů pro nákupní model virtuálních jader najdete tady:
Omezení založená na virtuálních jádrech pro izolované databáze.
Omezení založená na virtuálních jádrech pro elastické fondy.
Limity prostředků služby Azure SQL Managed Instance
40553 16 The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.

Snížení počtu ORDER BY a GROUP BY operací v kódu Transact-SQL snižuje požadavky na paměť dotazu. Informace o škálování databáze najdete v tématu Škálování prostředků izolované databáze a Škálování prostředků elastického fondu. Další informace o chybách nedostatku paměti a ukázkových dotazech najdete v tématu Řešení chyb nedostatku paměti ve službě Azure SQL Database.

Chyby elastického fondu

Následující chyby souvisejí s vytvářením a používáním elastických fondů:

Kód chyby Závažnost Popis Nápravná akce
1132 17 The elastic pool has reached its storage limit. The storage usage for the elastic pool cannot exceed (%d) MBs.

Pokus o zápis dat do databáze při dosažení limitu úložiště elastického fondu Informace o limitech prostředků najdete tady:
Limity prostředků pro elastické fondy využívající nákupní model DTU
Omezení založená na virtuálních jádrech pro elastické fondy.
Pokud je to možné, zvažte zvýšení DTU nebo přidání úložiště do elastického fondu, pokud je to možné, abyste zvýšili limit úložiště, snížili úložiště používané jednotlivými databázemi v rámci elastického fondu nebo z elastického fondu odebrali databáze. Informace o škálování elastického fondu najdete v tématu Škálování prostředků elastického fondu. Další informace o odebrání nepoužívaného místa z databází najdete v tématu Správa prostoru souborů pro databáze ve službě Azure SQL Database.
10929 16 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.

Informace o limitech prostředků najdete tady:
Limity prostředků DTU pro elastické fondy
Omezení založená na virtuálních jádrech pro elastické fondy.
V opačném případě zkuste to znovu později. DTU / vCore min na databázi; Maximální počet DTU / virtuálních jader na databázi. Celkový počet souběžných pracovních procesů ve všech databázích v elastickém fondu se pokusil překročit limit fondu.
Pokud je to možné, zvažte zvýšení DTU nebo virtuálních jader elastického fondu, abyste zvýšili limit pracovního procesu, nebo z elastického fondu odeberte databáze.
40844 16 Database '%ls' on Server '%ls' is a '%ls' edition database in an elastic pool and cannot have a continuous copy relationship.
40857 16 Elastic pool not found for server: '%ls', elastic pool name: '%ls'. Specified elastic pool does not exist in the specified server. Zadejte platný název elastického fondu.
40858 16 Elastic pool '%ls' already exists in server: '%ls'. Specified elastic pool already exists in the specified server. Zadejte nový název elastického fondu.
40859 16 Elastic pool does not support service tier '%ls'. Specified service tier is not supported for elastic pool provisioning. Zadejte správnou edici nebo ponechte prázdnou úroveň služby, aby používala výchozí úroveň služby.
40860 16 Elastic pool '%ls' and service objective '%ls' combination is invalid. Elastic pool and service tier can be specified together only if resource type is specified as 'ElasticPool'. Zadejte správnou kombinaci elastického fondu a úrovně služby.
40861 16 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. Nezadávejte edici databáze, která se liší od úrovně služby elastického fondu. Edici databáze není nutné zadávat.
40862 16 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. Pokud používáte cíl služby elastického fondu, zadejte název elastického fondu.
40864 16 The DTUs for the elastic pool must be at least (%d) DTUs for service tier '%.*ls'. Attempting to set the DTUs for the elastic pool below the minimum limit. Zopakujte nastavení DTU elastického fondu na minimální limit.
40865 16 The DTUs for the elastic pool cannot exceed (%d) DTUs for service tier '%.*ls'. Attempting to set the DTUs for the elastic pool above the maximum limit. Zopakujte nastavení DTU elastického fondu na maximálně maximální limit.
40867 16 The DTU max per database must be at least (%d) for service tier '%.*ls'. Attempting to set the DTU max per database below the supported limit. Zvažte použití úrovně služby elastického fondu, která podporuje požadované nastavení.
40868 16 The DTU max per database cannot exceed (%d) for service tier '%.*ls'. Attempting to set the DTU max per database beyond the supported limit. Zvažte použití úrovně služby elastického fondu, která podporuje požadované nastavení.
40870 16 The DTU min per database cannot exceed (%d) for service tier '%.*ls'. Attempting to set the DTU min per database beyond the supported limit. Zvažte použití úrovně služby elastického fondu, která podporuje požadované nastavení.
40873 16 The number of databases (%d) and DTU min per database (%d) cannot exceed the DTUs of the elastic pool (%d). Attempting to specify DTU min for databases in the elastic pool that exceeds the DTUs of the elastic pool. Zvažte zvýšení DTU elastického fondu nebo snížení minimálního počtu DTU na databázi nebo snížení počtu databází v elastickém fondu.
40877 16 An elastic pool cannot be deleted unless it does not contain any databases. The elastic pool contains one or more databases and therefore cannot be deleted. Odeberte databáze z elastického fondu, abyste je mohli odstranit.
40881 16 The elastic pool '%.*ls' has reached its database count limit. 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. Pokud je to možné, zvažte zvýšení DTU elastického fondu, pokud je to možné, nebo odebrání databází z elastického fondu.
40889 16 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. Zvažte snížení využití úložiště jednotlivých databází v elastickém fondu nebo odebrání databází z fondu, aby se snížil limit DTU nebo úložiště.
40891 16 The DTU min per database (%d) cannot exceed the DTU max per database (%d). Attempting to set the DTU min per database higher than the DTU max per database. Ujistěte se, že minimum DTU na databáze nepřekračuje maximální počet DTU na databázi.
TBD 16 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. Nastavte maximální velikost databáze v mezích maximální velikosti povolené úrovní služby elastického fondu.

Nelze otevřít databázi "master" požadovanou pro přihlášení. Přihlášení se nezdařilo.

K tomuto problému dochází, protože účet nemá oprávnění pro přístup master k databázi. Ve výchozím nastavení se ale SQL Server Management Studio (SSMS) pokusí připojit k master databázi.

Pokud chcete tento problém vyřešit, postupujte následovně:

  1. Na přihlašovací obrazovce aplikace SSMS vyberte Možnosti a pak vyberte Vlastnosti připojení.

  2. Do pole Připojit k databázi zadejte výchozí název databáze uživatele jako výchozí přihlašovací databázi a pak vyberte Připojit.

    Snímek obrazovky s dialogem Připojit v aplikaci SSMS s kartou Vlastnosti připojení

Chyby jen pro čtení

Pokud se pokusíte zapisovat do databáze, která je určená jen pro čtení, zobrazí se chyba. V některých scénářích nemusí být příčina stavu databáze jen pro čtení okamžitě jasná.

Chyba 3906: Nepodařilo se aktualizovat databázi database databaseName, protože databáze je jen pro čtení.

Při pokusu o úpravu databáze jen pro čtení se vyvolá následující chyba.

Msg 3906, Level 16, State 2, Line 1
Failed to update database "%d" because the database is read-only.

Existuje několik možných vysvětlení, proč je databáze určená jen pro čtení.

Po ručním převzetí služeb při selhání se aplikace stále připojují ke staré replice.

Ve službě Azure SQL Database se po převzetí služeb při selhání k jiné replice může vaše aplikace kvůli DNS stále připojovat k předchozí primární replice. Směrování připojení skupiny převzetí služeb při selhání se implementuje pomocí DNS.

Potenciální původní příčiny:

  1. Během převzetí služeb při selhání se koncové body skupiny převzetí služeb při selhání aktualizují tak, aby ukazovaly na odpovídající nový primární a nový sekundární server změnou cíle příslušné položky DNS. Ve výchozím nastavení se položky DNS vytvářejí s hodnotou TTL 30 sekund, což znamená, že klienti DNS ukládají tyto položky do mezipaměti po dobu 30 sekund. V důsledku toho se aktualizace záznamů DNS nešírují okamžitě; položky budou zastaralé, dokud nebudou všichni klienti a zprostředkující uzly aktualizovat jejich mezipaměti. Proto může trvat od 0 do přibližně 10 minut (v závislosti na topologii sítě), než se přihlášení ke koncovým bodům skupiny převzetí služeb při selhání směrují do nových cílů po převzetí služeb při selhání. Vyprázdnění mezipamětí DNS může nebo nemusí pomoct s problémem, protože mezilehlé síťové uzly, které reagují na požadavky DNS, ukládají výsledky DNS do mezipaměti po určitou dobu.

    Doporučeným alternativním řešením tohoto problému je jednoduše počkat, až se položky DNS aktualizují v klientovi. V současné době by toto alternativní řešení vedlo k problému, který se vyřeší uvnitř 10 minut.

  2. Některé klientské knihovny SQL používají funkci označovanou jako sdružování připojení, která znovu používá připojení ke stejnému zdroji dat, místo aby je zavřela a znovu otevřela pokaždé, když je potřeba nové připojení k databázi. Konkrétně je sdružování připojení ve výchozím nastavení povolené ve ADO.NET. V kombinaci s problémem popsaným v 1 může sdružování připojení způsobit, že nově otevřená připojení znovu použijí připojení ke staré databázi, čímž zabrání aplikaci v připojení k nové primární databázi na neomezenou dobu.

Řešení:

Po převzetí služeb při selhání skupiny převzetí služeb při selhání existují tři možná alternativní řešení tohoto problému DNS:

  1. Upravte aplikaci tak, aby volala SQLConnection.ClearAllPools nebo SQLConnection.ClearPool(conn) kdy došlo k chybě jen pro čtení.
  2. V aplikaci připojovací řetězec určetePooling=False, že chcete zakázat sdružování připojení. Tato možnost by měla být testována, protože může výrazně ovlivnit výkon, pokud se aplikace otevře a často ukončí připojení.
  3. Další možností, jak se vyhnout zpoždění replikace NEBO ukládání do mezipaměti DNS, je přímé připojení pomocí názvu logického serveru Azure SQL Database (původního sekundárního serveru, nyní nového primárního) v časovém intervalu po výskytu 3906.

Možná jste připojení k replice jen pro čtení.

U služby Azure SQL Database i Azure SQL Managed Instance můžete být připojeni k databázi na replice jen pro čtení. V tomto případě vrátí následující dotaz pomocí funkce READ_ONLYDATABASEPROPERTYEX():

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');
GO

Pokud se připojujete pomocí aplikace SQL Server Management Studio, ověřte, jestli jste na kartě Další parametry připojení na možnostech připojení zadali ApplicationIntent=ReadOnly .

Pokud je připojení z aplikace nebo klienta pomocí připojovací řetězec, ověřte, jestli připojovací řetězec zadal ApplicationIntent=ReadOnly. Další informace najdete v části Připojení k replice jen pro čtení.

Databáze může být nastavená jen pro čtení.

Pokud používáte Azure SQL Database, je možné, že samotná databáze byla nastavená na jen pro čtení. Stav databáze můžete ověřit pomocí následujícího dotazu:

SELECT name, is_read_only
FROM sys.databases
WHERE database_id = DB_ID();

Stav jen pro čtení pro databázi ve službě Azure SQL Database můžete upravit pomocí příkazu ALTER DATABASE Transact-SQL. Aktuálně nemůžete nastavit databázi ve spravované instanci na jen pro čtení.

Ověřte, jestli příčinou chyby je problém s připojením.

Pokud chcete ověřit, jestli příčinou chyby je problém s připojením, zkontrolujte trasování zásobníku pro rámce, které zobrazují volání pro otevření připojení, jako jsou následující (všimněte si odkazu na třídu SqlConnection ):

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

Když se výjimka aktivuje problémy s dotazy, všimnete si zásobníku volání, který je podobný následujícímu (všimněte si odkazu na třídu SqlCommand ). V takovém případě vylaďte dotazy.

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

Další informace o vyladění výkonu najdete v následujících zdrojích informací: