Delen via


Verbindingsproblemen en andere fouten oplossen met Azure SQL Database en Azure SQL Managed Instance

Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance

Er worden foutberichten weergegeven wanneer de verbinding met Azure SQL Database of Azure SQL Managed Instance mislukt. Deze verbindingsproblemen kunnen worden veroorzaakt door herconfiguratie, firewallinstellingen, een verbindingstime-out, onjuiste aanmeldingsgegevens of het niet toepassen van aanbevolen procedures en ontwerprichtlijnen tijdens het ontwerpproces van de toepassing. Als de maximumlimiet voor sommige Azure SQL database- of SQL Managed Instance-resources is bereikt, kunt u bovendien geen verbinding meer maken.

Notitie

U kunt Azure SQL Verbinding maken ivity Checker gebruiken om een groot aantal connectiviteitsfouten met Azure SQL Database, Azure SQL Managed Instance en in Azure Synapse Analytics-omgevingen te detecteren en op te lossen.

Tijdelijke foutberichten (40197, 40613 en andere)

De Azure-infrastructuur biedt de mogelijkheid om servers dynamisch opnieuw te configureren wanneer zware workloads optreden in de SQL Database-service. Dit dynamische gedrag kan ervoor zorgen dat uw clientprogramma de verbinding met de database of instantie verliest. Dit soort foutvoorwaarde wordt een tijdelijke fout genoemd. Herconfiguratiegebeurtenissen van de database vinden plaats vanwege een geplande gebeurtenis (bijvoorbeeld een software-upgrade) of een niet-geplande gebeurtenis (bijvoorbeeld een procescrash of taakverdeling). De meeste herconfiguratiegebeurtenissen zijn over het algemeen van korte duur en moeten in maximaal 60 seconden worden voltooid. Het kan echter soms langer duren voordat deze gebeurtenissen zijn voltooid, bijvoorbeeld wanneer een grote transactie een langlopend herstel veroorzaakt. De volgende tabel bevat verschillende tijdelijke fouten die toepassingen kunnen ontvangen bij het maken van verbinding met Azure SQL Database.

Lijst met tijdelijke foutcodes

Foutcode Ernst Beschrijving
926 14 De database 'replicatedmaster' kan niet worden geopend. Het is gemarkeerd als VERDACHTE door herstel. Zie het SQL Server-foutenlogboek voor meer informatie.

Deze fout kan gedurende korte tijd worden geregistreerd in het foutenlogboek van SQL Managed Instance tijdens de laatste fase van een herconfiguratie, terwijl het oude primaire logboek wordt afgesloten.
Andere, niet-tijdelijke scenario's met dit foutbericht worden beschreven in de documentatie over MSSQL-fouten.
4060 16 De database %.*ls die is aangevraagd door de aanmelding, kan niet worden geopend. De aanmelding is mislukt. Zie Fouten 4000 tot 4999 voor meer informatie
40197 17 Er is een fout opgetreden bij verwerken van uw aanvraag. Probeer het opnieuw. Foutcode %d.

U ontvangt deze fout wanneer de service niet beschikbaar is vanwege software- of hardware-upgrades, hardwarefouten of andere failoverproblemen. De foutcode (%d) die is ingesloten in het bericht van fout 40197 biedt aanvullende informatie over het soort fout of failover dat is opgetreden. Enkele voorbeelden van foutcodes worden ingesloten in het bericht van fout 40197 zijn 40020, 40143, 40166 en 40540.

Als u opnieuw verbinding maakt, wordt u automatisch verbonden met een goede kopie van uw database. Uw toepassing moet fout 40197 onderscheppen, de ingesloten foutcode (%d) registreren in het bericht voor probleemoplossing en opnieuw verbinding maken met SQL Database totdat de resources beschikbaar zijn en uw verbinding opnieuw tot stand is gebracht. Zie Tijdelijke fouten voor meer informatie.
40501 20 De service is momenteel te druk. Probeer de aanvraag na 10 seconden opnieuw. Incident-id: %ls. Code: %d. Zie voor meer informatie:
• Resourcelimieten voor logische SQL-server.
DTU-limieten voor individuele databases.
DTU-limieten voor elastische pools.
• vCore-limieten voor individuele databases.
• Limieten op basis van vCore voor elastische pools.
Resourcelimieten voor Azure SQL Managed Instance.
40613 17 De database %.*ls op server %.*ls is momenteel niet beschikbaar. Probeer later opnieuw verbinding te maken. Als het probleem zich blijft voordoen, neemt u contact op met de klantondersteuning en geeft u de sessietracerings-id van %.*ls op.

Deze fout kan optreden als er al een bestaande toegewezen administratorverbinding (DAC) tot stand is gebracht voor de database. Zie Tijdelijke fouten voor meer informatie.
49918 16 Kan aanvraag niet verwerken. Onvoldoende resources om aanvraag te verwerken.

De service is momenteel te druk. Probeer de aanvraag later opnieuw. Zie voor meer informatie:
• Resourcelimieten voor logische SQL-server.
DTU-limieten voor individuele databases.
DTU-limieten voor elastische pools.
• vCore-limieten voor individuele databases.
• Limieten op basis van vCore voor elastische pools.
Resourcelimieten voor Azure SQL Managed Instance.
49919 16 Kan aanvraag voor maken of bijwerken niet verwerken. Er worden te veel bewerkingen voor maken of bijwerken uitgevoerd voor abonnement '%ld'.

De service is bezig met het verwerken van meerdere aanvragen voor het maken of bijwerken van uw abonnement of server. Aanvragen worden momenteel geblokkeerd voor resourceoptimalisatie. Query's uitvoeren op sys.dm_operation_status voor bewerkingen die in behandeling zijn. Wacht totdat het maken of bijwerken van aanvragen in behandeling is voltooid of verwijder een van uw aanvragen die in behandeling zijn en probeer het later opnieuw. Als uw bewerkingen lijken te zijn vastgelopen, wacht u tot andere actieve bewerkingen zijn voltooid of annuleert u deze indien mogelijk. U kunt bijvoorbeeld het maken van een databasekopie of geo-replica annuleren door de database of replica te verwijderen die wordt gemaakt. Als u een blijkbaar vastgelopen bewerking niet kunt annuleren, opent u een ondersteuningsticket bij Microsoft.
49920 16 Kan aanvraag niet verwerken. Er worden te veel bewerkingen uitgevoerd voor abonnement %ld.

De service is bezig met het verwerken van meerdere aanvragen voor dit abonnement. Aanvragen worden momenteel geblokkeerd voor resourceoptimalisatie. Query sys.dm_operation_status voor de bewerkingsstatus. Wacht totdat aanvragen in behandeling zijn voltooid of verwijder een van uw aanvragen die in behandeling zijn en probeer het later opnieuw. Als uw bewerkingen lijken te zijn vastgelopen, wacht u tot andere actieve bewerkingen zijn voltooid of annuleert u deze indien mogelijk. U kunt bijvoorbeeld het maken van een databasekopie of geo-replica annuleren door de database of replica te verwijderen die wordt gemaakt. Als u een blijkbaar vastgelopen bewerking niet kunt annuleren, opent u een ondersteuningsticket bij Microsoft.
4221 16 Aanmelden bij lees-secundaire is mislukt vanwege een lange wachttijd op 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING'. De replica is niet beschikbaar voor aanmelding omdat rijversies ontbreken voor transacties die in-flight waren toen de replica werd gerecycled. Het probleem kan worden opgelost door de actieve transacties op de primaire replica terug te draaien of vast te leggen. Exemplaren van deze voorwaarde kunnen worden geminimaliseerd door lange schrijftransacties op de primaire schijf te voorkomen.
615 21 Kan database-id %d, naam %.*ls niet vinden. Foutcode 615.
Dit betekent dat de cache in het geheugen niet is gesynchroniseerd met het SQL Server-exemplaar en dat zoekacties verouderde database-id ophalen.

SQL-aanmeldingen maken gebruik van cache in het geheugen om de databasenaam op te halen voor id-toewijzing. De cache moet worden gesynchroniseerd met de back-enddatabase en moet worden bijgewerkt wanneer de database wordt gekoppeld en losgekoppeld van het SQL Server-exemplaar.
U krijgt deze fout wanneer het loskoppelen van de werkstroom de cache in het geheugen niet op tijd opschoont en latere zoekopdrachten naar het databasepunt om de database-id te laten verlopen.

Probeer opnieuw verbinding te maken met SQL Database totdat de resource beschikbaar is en de verbinding opnieuw tot stand is gebracht. Zie Tijdelijke fouten voor meer informatie.

Stappen voor het oplossen van tijdelijke verbindingsproblemen

  1. Controleer het Microsoft Azure-servicedashboard op bekende storingen die zijn opgetreden tijdens de periode waarin de fouten door de toepassing zijn gerapporteerd.
  2. Toepassingen die verbinding maken met een cloudservice zoals Azure SQL Database, moeten periodieke herconfiguratie-gebeurtenissen verwachten en logica voor opnieuw proberen implementeren om deze fouten af te handelen in plaats van toepassingsfouten op te lossen voor gebruikers.
  3. Als een database de resourcelimieten nadert, kan het lijken een tijdelijk verbindingsprobleem te zijn. Zie Resourcelimieten.
  4. Als de verbindingsproblemen zich blijven voordoen of als de duur van de fout in uw toepassing langer is dan 60 seconden of als u meerdere exemplaren van de fout ziet op een bepaalde dag, dient u een ondersteuning voor Azure aanvraag in door Ondersteuning krijgen te selecteren op de Azure-ondersteuningssite.

Logica voor opnieuw proberen implementeren

Het wordt ten zeerst aangeraden dat uw clientprogramma logica voor opnieuw proberen heeft, zodat er een verbinding kan worden hersteld nadat de tijdelijke fouttijd is verstreken om zichzelf te corrigeren. U wordt aangeraden 5 seconden voordat u het opnieuw probeert uit te stellen. Het opnieuw proberen na een vertraging van minder dan 5 seconden kan de cloudservice overweldigen. Voor elke volgende nieuwe poging moet de vertraging exponentieel toenemen, tot maximaal 60 seconden.

Zie voor codevoorbeelden van logica voor opnieuw proberen:

Raadpleeg het oplossen van tijdelijke verbindingsfouten met SQL Database voor aanvullende informatie over het afhandelen van tijdelijke fouten in uw toepassing

Een bespreking van de blokkeringsperiode voor clients die gebruikmaken van ADO.NET is beschikbaar in Verbinding maken ion Pooling (ADO.NET).

Het probleem treedt op als de toepassing geen verbinding kan maken met de server.

Probeer de stappen (in de volgorde die worden weergegeven) in de stappen om veelvoorkomende verbindingsproblemen op te lossen om dit probleem op te lossen.

De server/instantie is niet gevonden of is niet toegankelijk (fouten 26, 40, 10053)

Fout 26: Fout bij het zoeken van de server opgegeven

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)

Fout 40: Kan geen verbinding met de server openen

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)

Fout 10053: Er is een transportfout opgetreden bij het ontvangen van resultaten van de 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)

Deze problemen treden op als de toepassing geen verbinding kan maken met de server.

Als u deze problemen wilt oplossen, voert u de stappen uit (in de volgorde die wordt weergegeven) in de stappen voor het oplossen van veelvoorkomende verbindingsproblemen .

Kan geen verbinding maken met de server vanwege firewallproblemen

Fout 40615: Kan geen verbinding maken met < servernaam >

U kunt dit probleem oplossen door firewallinstellingen in SQL Database te configureren via Azure Portal.

Fout 5: Kan geen verbinding maken met < servernaam >

U kunt dit probleem oplossen door ervoor te zorgen dat poort 1433 is geopend voor uitgaande verbindingen op alle firewalls tussen de client en internet.

Kan niet aanmelden bij de server (fouten 18456, 40531)

Aanmelden is mislukt voor gebruiker '< Gebruikersnaam >'

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)

Neem contact op met de servicebeheerder om u een geldige gebruikersnaam en een geldig wachtwoord te geven om dit probleem op te lossen.

Normaal gesproken kan de servicebeheerder de volgende stappen gebruiken om de aanmeldingsreferenties toe te voegen:

  1. Meld u aan bij de server met behulp van SQL Server Management Studio (SSMS).

  2. Voer de volgende SQL-query uit in de master database om te controleren of de aanmeldingsnaam is uitgeschakeld:

    SELECT name, is_disabled FROM sys.sql_logins;
    
  3. Als de bijbehorende naam is uitgeschakeld, schakelt u deze in met behulp van de volgende instructie:

    ALTER LOGIN <User name> ENABLE;
    
  4. Als de gebruikersnaam voor SQL-aanmelding niet bestaat, bewerkt u de volgende SQL-query en voert u deze uit om een nieuwe SQL-aanmelding te maken:

    CREATE LOGIN <SQL_login_name, sysname, login_name>
    WITH PASSWORD = '<password, sysname, Change_Password>';
    GO
    
  5. Vouw databases uit in SSMS Objectverkenner.

  6. Selecteer de database waaraan u de gebruiker toestemming wilt verlenen.

  7. Klik met de rechtermuisknop op Beveiliging en selecteer Vervolgens Nieuw, Gebruiker.

  8. Vervang in het gegenereerde script met tijdelijke aanduidingen (voorbeeld hieronder weergegeven) sjabloonparameters door de stappen hier uit te voeren en uit te voeren:

    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
    

    U kunt ook sp_addrolemember specifieke gebruikers toewijzen aan specifieke databaserollen.

    Notitie

    Houd in Azure SQL Database rekening met de nieuwere ALTER ROLE-syntaxis voor het beheren van het lidmaatschap van de databaserol.

Zie Databases en aanmeldingen beheren in Azure SQL Database voor meer informatie.

Verbinding maken-time-out verlopen fouten

System.Data.SqlClient.SqlException (0x80131904): time-out van Verbinding maken ion verlopen

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): Time-out is verlopen

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: De onderliggende provider is mislukt bij Openen

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

Kan geen verbinding maken met < servernaam >

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

Deze uitzonderingen kunnen optreden vanwege verbindingsproblemen of queryproblemen. Als u wilt controleren of deze fout wordt veroorzaakt door verbindingsproblemen, raadpleegt u Controleren of een fout wordt veroorzaakt door een verbindingsprobleem.

Verbinding maken iontime-outs optreden omdat de toepassing geen verbinding kan maken met de server. Probeer de stappen (in de volgorde die worden weergegeven) in de stappen om veelvoorkomende verbindingsproblemen op te lossen om dit probleem op te lossen.

Fouten bij beëindiging van netwerkverbinding

SQL-clientbibliotheken maken verbinding met Azure SQL Database en Azure SQL Managed Instance met behulp van het TCP-netwerkprotocol. Een clientbibliotheek maakt gebruik van een onderdeel op een lager niveau met de naam TCP-provider om TCP-verbindingen te beheren. Wanneer de TCP-provider detecteert dat een externe host onverwacht een bestaande TCP-verbinding heeft beëindigd, treedt er een fout op in de clientbibliotheek. Omdat de fout een clientfout is en geen SQL-serverfout, is er geen SQL-foutnummer opgenomen. In plaats daarvan is het foutnummer 0 en wordt het foutbericht van de TCP-provider gebruikt.

Voorbeelden van fouten bij beëindiging van netwerkverbindingen zijn:

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

Verbinding maken ion-beëindigingsfouten kunnen optreden omdat de database of elastische pool tijdelijk niet beschikbaar is. Ze kunnen ook optreden vanwege verschillende problemen in de netwerkinfrastructuur tussen de databaseserver en de clienttoepassing, waaronder firewalls, netwerkapparaten, enzovoort. Deze problemen kunnen tijdelijk of permanent zijn. Als algemene richtlijnen moeten toepassingen een vast aantal nieuwe pogingen voor deze fouten gebruiken voordat ze permanente fouten overwegen.

Fouten in resourcebeheer

Azure SQL Database maakt gebruik van een implementatie van resourcebeheer op basis van Resource Governor om resourcelimieten af te dwingen. Meer informatie over resourcebeheer in Azure SQL Database.

De meest voorkomende fouten in resourcebeheer worden eerst vermeld met details, gevolgd door een tabel met foutberichten over resourcebeheer.

Fouten 10928 en 10936: Resource-id: 1. De aanvraaglimiet voor de [database of elastische pool] is %d en is bereikt

Als de limiet op databaseniveau is bereikt, wordt het gedetailleerde foutbericht in dit geval gelezen: 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.

Als de limiet voor elastische pools is bereikt, wordt het gedetailleerde foutbericht in dit geval gelezen: 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. Limieten voor elastische pools zijn hoger dan databaselimieten. Zie Resourcelimieten voor meer informatie. Ze kunnen worden bereikt wanneer meerdere databases in de pool gelijktijdig een resource (zoals werkrollen) gebruiken.

Dit foutbericht geeft aan dat de werkrollimiet voor de database of elastische pool is bereikt. De maximumwaarde voor gelijktijdige werkrollen voor de servicedoelstelling van de database of elastische pool is aanwezig in plaats van de tijdelijke aanduiding %d.

Notitie

De eerste aanbieding van Azure SQL Database ondersteunde alleen query's met één thread. Op dat moment was het aantal aanvragen altijd gelijk aan het aantal werknemers. Foutberichten 10928 en 10936 in Azure SQL Database bevatten de tekst 'De aanvraaglimiet [...] is N en is bereikt voor achterwaartse compatibiliteitsdoeleinden. De limiet die is bereikt, is in feite het aantal werkrollen. Als de maximale mate van parallelle uitvoering (MAXDOP) gelijk is aan nul of groter is dan één, kan het aantal werkrollen veel hoger zijn dan het aantal aanvragen en kan de limiet veel sneller worden bereikt dan wanneer MAXDOP gelijk is aan één.

Meer informatie over sessies, werknemers en aanvragen.

Verbinding maken indien nodig met de Dedicated Beheer Verbinding maken ion (DAC)

Als er een live-incident wordt uitgevoerd waarbij de werkrollimiet is benaderd of bereikt, ontvangt u mogelijk fout 10928 wanneer u verbinding maakt met behulp van SQL Server Management Studio (SSMS) of Azure Data Studio. Eén sessie kan verbinding maken met behulp van de Diagnostische Verbinding maken ion voor Database Beheer istrators (DAC), zelfs wanneer de maximale werkroldrempel is bereikt.

Een verbinding tot stand brengen met de DAC vanuit SSMS:

  • Selecteer bestand > nieuwe > database-enginequery in het menu
  • Voer in het dialoogvenster Verbinding in het veld Servernaam het volgende in admin:<fully_qualified_server_name> (dit is iets als admin:servername.database.windows.net).
  • Opties selecteren >>
  • Selecteer het tabblad Verbinding maken ionEigenschappen
  • Typ in het vak Verbinding maken naar database: de naam van uw database
  • Selecteer Verbinding maken.

Als u fout 40613 ontvangt, 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'kan dit erop wijzen dat er al een andere sessie is verbonden met de DAC. Slechts één sessie kan verbinding maken met de DAC voor één database of een elastische pool tegelijk.

Als u de fout 'Kan geen verbinding maken met server' tegenkomt nadat u Verbinding maken hebt geselecteerd, is de DAC-sessie mogelijk nog steeds tot stand gebracht als u een versie van SSMS gebruikt vóór 18.9. Vroege versies van SSMS probeerden Intellisense te bieden voor verbindingen met de DAC. Dit is mislukt, omdat de DAC slechts één werkrol ondersteunt en IntelliSense een afzonderlijke werkrol vereist.

U kunt geen DAC-verbinding gebruiken met Objectverkenner.

Uw max_worker_percent gebruik controleren

Als u statistieken over resourceverbruik voor uw database gedurende 14 dagen wilt vinden, voert u een query uit op de sys.resource_stats systeemcatalogusweergave. In max_worker_percent de kolom wordt het percentage werkrollen weergegeven dat is gebruikt ten opzichte van de werkrollimiet voor uw database. Verbinding maken naar de master database op uw logische server om een query uit te voerensys.resource_stats.

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

U kunt ook statistieken over resourceverbruik opvragen uit het afgelopen uur vanuit de sys.dm_db_resource_stats dynamische beheerweergave. Verbinding maken rechtstreeks naar uw database om een query uit te voerensys.dm_db_resource_stats.

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

Gebruik van werknemers verlagen indien mogelijk

Blokkerende ketens kunnen een plotselinge piek veroorzaken in het aantal werkrollen in een database. Een groot aantal gelijktijdige parallelle query's kan een groot aantal werkrollen veroorzaken. Het verhogen van de maximale mate van parallelle uitvoering (MAXDOP) of het instellen van MAXDOP op nul kan het aantal actieve werkrollen verhogen.

Sorteer een incident met onvoldoende werknemers door de volgende stappen uit te voeren:

  1. Onderzoek of er blokkerend is of als u een groot aantal gelijktijdige werkrollen kunt identificeren. Voer de volgende query uit om de huidige aanvragen te onderzoeken en te controleren op blokkering wanneer uw database fout 10928 retourneert. Mogelijk moet u verbinding maken met de Dedicated Beheer Verbinding maken ion (DAC) om de query uit te voeren.

    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. Zoek naar rijen met een blocking_session_id om geblokkeerde sessies te identificeren. Zoek elke blocking_session_id in de lijst om te bepalen of die sessie ook wordt geblokkeerd. Dit leidt je uiteindelijk naar de hoofdblokkering. Stem de head blocker-query af.

      Notitie

      Zie Azure SQL Database-blokkeringsproblemen begrijpen en oplossen voor uitgebreidere informatie over het oplossen van langdurige of blokkerende query's.

    2. Als u een groot aantal gelijktijdige werknemers wilt identificeren, controleert u het totale aantal aanvragen en de worker_count kolom voor elke aanvraag. Worker_count is het aantal werkrollen op het moment waarop een steekproef is genomen en kan na verloop van tijd veranderen wanneer de aanvraag wordt uitgevoerd. Stem query's af om het resourcegebruik te verminderen als de oorzaak van toegenomen werkrollen gelijktijdige query's zijn die worden uitgevoerd op hun optimale mate van parallelle uitvoering. Zie Afstemmen van query's en query-hints voor meer informatie.

  2. Evalueer de maximale mate van parallelle uitvoering (MAXDOP) voor de database.

Werkrollimieten verhogen

Als de database of elastische pool consistent de werkrollimiet bereikt ondanks het blokkeren van adressering, het optimaliseren van query's en het valideren van uw MAXDOP-instelling, kunt u overwegen om de database of elastische pool omhoog te schalen om de werkrollimiet te verhogen.

Zoek resourcelimieten voor Azure SQL Database op servicelaag en rekenkracht:

Meer informatie over Azure SQL Database-resourcebeheer van werknemers.

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

Fout 40501: De service is momenteel bezet

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

Dit is een enginebeperkingsfout, een indicatie dat resourcelimieten worden overschreden.

Zie Resourcelimieten voor logische SQL Server voor meer informatie over resourcelimieten.

Fout 40544: De database heeft het quotum voor de grootte bereikt

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

Deze fout treedt op wanneer de database het quotum voor de grootte heeft bereikt.

De volgende stappen kunnen u helpen het probleem te omzeilen of u meer opties te bieden:

  1. Controleer de huidige grootte van de database met behulp van het dashboard in Azure Portal.

    Notitie

    Voer de volgende SQL-query uit om te bepalen welke tabellen de meeste ruimte verbruiken en daarom potentiële kandidaten zijn voor opschoning:

    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. Als de huidige grootte niet groter is dan de maximale grootte die wordt ondersteund voor uw editie, kunt u ALTER DATABASE gebruiken om de maxSIZE-instelling te verhogen.

  3. Als de database al de maximale ondersteunde grootte voor uw editie heeft overschreden, voert u een of meer van de volgende stappen uit:

    • Voer normale activiteiten voor het opschonen van databases uit. U kunt bijvoorbeeld de ongewenste gegevens opschonen met behulp van afkappen/verwijderen of gegevens verplaatsen met behulp van SQL Server Integration Services (SSIS) of het hulpprogramma voor bulksgewijs kopiëren (bcp).
    • Partition or delete data, drop indexes, or consult the documentation for possible resolutions.
    • Zie Resources voor individuele databases schalen en Elastische poolbronnen schalen voor het schalen van databases.

Fout 40549: Sessie wordt beëindigd omdat u een langlopende transactie hebt

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

Als u deze fout herhaaldelijk tegenkomt, probeert u het probleem op te lossen door de volgende stappen uit te voeren:

  1. Voer de volgende query uit om geopende sessies te zien met een hoge waarde voor de duration_ms kolom:

    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
    

    U kunt ervoor kiezen om rijen te negeren waarbij in de input_buffer kolom een query wordt gelezen van sys.fn_MSxe_read_event_stream: deze aanvragen zijn gerelateerd aan uitgebreide gebeurtenissessies.

  2. Controleer de blocking_session_id kolom om te zien of blokkeren bijdraagt aan langlopende transacties.

    Notitie

    Zie Problemen met blokkeren in Azure SQL Database begrijpen en oplossen voor meer informatie over het oplossen van blokkeringsproblemen in Azure SQL Database.

  3. Overweeg om uw query's in batches te plaatsen. Zie Batchverwerking gebruiken om de prestaties van SQL Database-toepassingen te verbeteren voor meer informatie over batchverwerking.

Fout 40551: De sessie is beëindigd vanwege overmatig tempdb-gebruik

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

Volg deze stappen om dit probleem te omzeilen:

  1. Wijzig de query's om het gebruik van tijdelijke tabelruimte te verminderen.
  2. Verwijder tijdelijke objecten nadat ze niet meer nodig zijn.
  3. Tabellen afkappen of ongebruikte tabellen verwijderen.

Fout 40552: De sessie is beëindigd vanwege overmatig gebruik van transactielogboeken

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

Probeer de volgende methoden om dit op te lossen:

  • Het probleem kan optreden vanwege invoeg-, update- of verwijderbewerkingen. Probeer het aantal rijen te verminderen waarop onmiddellijk wordt gewerkt door batchverwerking of splitsing in meerdere kleinere transacties te implementeren.
  • Het probleem kan optreden vanwege herbouwbewerkingen voor indexen. U kunt dit probleem omzeilen door ervoor te zorgen dat het aantal rijen dat wordt beïnvloed in de tabel * (gemiddelde grootte van het veld dat is bijgewerkt in bytes + 80) < 2 gigabyte (GB).
  • Voor het opnieuw samenstellen van een index moet de gemiddelde grootte van het veld dat wordt bijgewerkt, worden vervangen door de gemiddelde indexgrootte.
  • Zie Problemen met een volledig transactielogboek in Azure SQL Database oplossen en problemen met een volledig transactielogboek in Azure SQL Managed Instance oplossen.

Fout 40553: De sessie is beëindigd vanwege overmatig geheugengebruik

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

U kunt dit probleem omzeilen door de query te optimaliseren.

Zie Is mijn query prima in de cloud uitgevoerd voor een uitgebreide procedure voor probleemoplossing.

Zie Problemen met onvoldoende geheugen oplossen met Azure SQL Database voor meer informatie over andere geheugenfouten en voorbeeldquery's.

Tabel met foutberichten over resourcebeheer

Foutcode Ernst Beschrijving
10928 20 Resource-id: %d. De limiet %s voor de database is %d en is bereikt. Zie 'http://go.microsoft.com/fwlink/?LinkId=267637' voor hulp.

De resource-id geeft de resource aan die de limiet heeft bereikt. Als resource-id = 1, geeft dit aan dat er een werkrollimiet is bereikt. Meer informatie in fout 10928: Resource-id: 1. De aanvraaglimiet voor de database is %d en is bereikt. Als resource-id = 2, geeft dit aan dat de sessielimiet is bereikt.

Meer informatie over resourcelimieten:
• Resourcelimieten voor logische SQL-server.
DTU-limieten voor individuele databases.
• vCore-limieten voor individuele databases.
Resourcelimieten voor Azure SQL Managed Instance.
10936 20 Resource-id: %d. De limiet %s voor de elastische pool is %d en is bereikt. Zie 'http://go.microsoft.com/fwlink/?LinkId=267637' voor hulp.

De resource-id geeft de resource aan die de limiet heeft bereikt. Als resource-id = 1, geeft dit aan dat er een werkrollimiet is bereikt. Meer informatie in fout 10936: Resource-id: 1. De aanvraaglimiet voor de elastische pool is %d en is bereikt.. Als resource-id = 2, geeft dit aan dat de sessielimiet is bereikt.

Meer informatie over resourcelimieten:
• Resourcelimieten voor logische SQL-server.
DTU-limieten voor elastische pools.
• Limieten op basis van vCore voor elastische pools.
Resourcelimieten voor Azure SQL Managed Instance.
10929 20 Resource-id: %d. De minimumgarantie %s is %d, de maximumlimiet is %d en het huidige gebruik voor de database is %d. De server is momenteel echter te druk om aanvragen te ondersteunen die groter zijn dan %d voor deze database. De resource-id geeft de resource aan die de limiet heeft bereikt. Voor werkrolthreads is de resource-id = 1. Voor sessies is de resource-id = 2. Zie voor meer informatie:
• Resourcelimieten voor logische SQL-server.
DTU-limieten voor individuele databases.
DTU-limieten voor elastische pools.
• vCore-limieten voor individuele databases.
• Limieten op basis van vCore voor elastische pools.
Resourcelimieten voor Azure SQL Managed Instance.
Probeer het later opnieuw.
40544 20 De database heeft het groottequotum bereikt. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Zie Resources voor individuele databases schalen en Elastische poolbronnen schalen voor het schalen van databases.
40549 16 De sessie wordt beëindigd omdat u een langlopende transactie hebt. Probeer uw transactie te verkorten. Zie Batchverwerking gebruiken om de prestaties van SQL Database-toepassingen te verbeteren voor meer informatie over batchverwerking.
40550 16 De sessie is beëindigd omdat deze te veel vergrendelingen heeft verkregen. Lees of wijzig minder rijen in één transactie. Zie Batchverwerking gebruiken om de prestaties van SQL Database-toepassingen te verbeteren voor meer informatie over batchverwerking.
40551 16 De sessie is beëindigd vanwege overmatig tempdb gebruik. Wijzig de query om het tijdelijke gebruik van de tabelruimte te verminderen.

Als u tijdelijke objecten gebruikt, bespaart u ruimte in de tempdb database door tijdelijke objecten te verwijderen nadat deze niet meer nodig zijn voor de sessie. Zie Tempdb-database in SQL Database voor meer informatie over tempdb limieten in SQL Database.
40552 16 De sessie is beëindigd vanwege overmatig gebruik van transactielogboeken. Probeer minder rijen in één transactie te wijzigen. Zie Batchverwerking gebruiken om de prestaties van SQL Database-toepassingen te verbeteren voor meer informatie over batchverwerking.

Als u bulksgewijze invoegingen uitvoert met behulp van het bcp.exe hulpprogramma of de System.Data.SqlClient.SqlBulkCopy klasse, gebruikt u de -b batchsize of BatchSize opties om het aantal rijen te beperken dat in elke transactie naar de server is gekopieerd. Als u een index opnieuw bouwt met de ALTER INDEX instructie, kunt u de REBUILD WITH ONLINE = ON optie gebruiken. Zie voor meer informatie over transactielogboekgrootten voor het vCore-aankoopmodel:
• vCore-limieten voor individuele databases.
• Limieten op basis van vCore voor elastische pools.
Resourcelimieten voor Azure SQL Managed Instance.
40553 16 De sessie is beëindigd vanwege overmatig geheugengebruik. Wijzig de query om minder rijen te verwerken.

Als u het aantal ORDER BY bewerkingen GROUP BY in uw Transact-SQL-code vermindert, vermindert u de geheugenvereisten van uw query. Zie Resources voor individuele databases schalen en Elastische poolbronnen schalen voor het schalen van databases. Zie Problemen met onvoldoende geheugen en voorbeeldquery's oplossen met Azure SQL Database voor meer informatie over geheugenfouten en voorbeeldquery's.

Fouten in elastische pools

De volgende fouten zijn gerelateerd aan het maken en gebruiken van elastische pools:

Foutcode Ernst Beschrijving Corrigerende actie
1132 17 De elastische pool heeft de opslaglimiet bereikt. Het opslaggebruik voor de elastische pool mag niet groter zijn dan (%d) MB's. Er wordt geprobeerd gegevens naar een database te schrijven wanneer de opslaglimiet van de elastische pool is bereikt. Zie voor meer informatie over resourcelimieten:
DTU-limieten voor elastische pools.
• Limieten op basis van vCore voor elastische pools.
Overweeg indien mogelijk de DTU's van en/of opslag toe te voegen aan de elastische pool om de opslaglimiet te verhogen, de opslag die wordt gebruikt door afzonderlijke databases in de elastische pool te verminderen of databases uit de elastische pool te verwijderen. Zie Resources voor elastische pools schalen. Zie Bestandsruimte beheren voor databases in Azure SQL Database voor meer informatie over het verwijderen van ongebruikte ruimte uit databases.
10929 16 De minimumgarantie %s is %d, de maximumlimiet is %d en het huidige gebruik voor de database is %d. De server is momenteel echter te druk om aanvragen te ondersteunen die groter zijn dan %d voor deze database. Zie voor meer informatie over resourcelimieten:
DTU-limieten voor elastische pools.
• Limieten op basis van vCore voor elastische pools.
Probeer het later opnieuw. DTU/vCore min per database; DTU/vCore max per database. Het totale aantal gelijktijdige werkrollen in alle databases in de elastische pool heeft geprobeerd de poollimiet te overschrijden.
Overweeg indien mogelijk de DTU's of vCores van de elastische pool te verhogen om de werkrollimiet te verhogen of databases uit de elastische pool te verwijderen.
40844 16 Database %ls op server %ls is een %ls-editiedatabase in een elastische pool en kan geen continue kopieerrelatie hebben. N.v.t.
40857 16 Elastische pool is niet gevonden voor server: %ls, naam elastische pool: %ls. De opgegeven elastische pool bestaat niet op de opgegeven server. Geef een geldige naam voor een elastische pool op.
40858 16 Er bestaat al een elastische pool %ls op de server: %ls. De opgegeven elastische pool bestaat al op de opgegeven server. Geef de naam van de nieuwe elastische pool op.
40859 16 Elastische pool biedt geen ondersteuning voor de servicelaag %ls. De opgegeven servicelaag wordt niet ondersteund voor het inrichten van elastische pools. Geef de juiste editie op of laat de servicelaag leeg om de standaardservicelaag te gebruiken.
40860 16 De combinatie %ls en servicedoelstelling %ls is ongeldig. Elastische pool en servicelaag kunnen alleen samen worden opgegeven als het resourcetype is opgegeven als 'ElasticPool'. Geef de juiste combinatie van elastische pool en servicelaag op.
40861 16 De database-editie %.*ls kan niet afwijken van de servicelaag voor elastische pools die %.*ls is. De database-editie verschilt van de servicelaag voor elastische pools. Geef geen database-editie op die verschilt van de servicelaag elastische pool. Houd er rekening mee dat de database-editie niet hoeft te worden opgegeven.
40862 16 De naam van de elastische pool moet worden opgegeven als de servicedoelstelling voor elastische pools is opgegeven. Servicedoelstelling voor elastische pools identificeert geen unieke identificatie van een elastische pool. Geef de naam van de elastische pool op als u de servicedoelstelling van de elastische pool gebruikt.
40864 16 De DTU's voor de elastische pool moeten ten minste (%d) DTU's zijn voor de servicelaag %.*ls. Het instellen van de DTU's voor de elastische pool onder de minimumlimiet. Stel de DTU's voor de elastische pool opnieuw in op ten minste de minimale limiet.
40865 16 De DTU's voor de elastische pool mogen de DTU's (%d) voor de servicelaag %.*ls niet overschrijden. Het instellen van de DTU's voor de elastische pool boven de maximumlimiet. Stel de DTU's voor de elastische pool opnieuw in op niet groter dan de maximumlimiet.
40867 16 Het maximum aantal DTU's per database moet ten minste (%d) zijn voor de servicelaag %.*ls. Als u het maximum aantal DTU's per database probeert in te stellen onder de ondersteunde limiet. Overweeg het gebruik van de servicelaag voor elastische pools die ondersteuning biedt voor de gewenste instelling.
40868 16 Het maximum aantal DTU's per database mag niet groter zijn dan (%d) voor de servicelaag %.*ls. Als u het maximum aantal DTU's per database probeert in te stellen buiten de ondersteunde limiet. Overweeg het gebruik van de servicelaag voor elastische pools die ondersteuning biedt voor de gewenste instelling.
40870 16 De DTU min per database mag niet groter zijn dan (%d) voor de servicelaag %.*ls. Als u probeert de DTU min per database in te stellen buiten de ondersteunde limiet. Overweeg het gebruik van de servicelaag voor elastische pools die ondersteuning biedt voor de gewenste instelling.
40873 16 Het aantal databases (%d) en DTU min per database (%d) mag de DTU's van de elastische pool (%d) niet overschrijden. Als u DTU min wilt opgeven voor databases in de elastische pool die de DTU's van de elastische pool overschrijdt. Overweeg de DTU's van de elastische pool te verhogen of de DTU min per database te verlagen of het aantal databases in de elastische pool te verlagen.
40877 16 Een elastische pool kan niet worden verwijderd, tenzij deze geen databases bevat. De elastische pool bevat een of meer databases en kan daarom niet worden verwijderd. Verwijder databases uit de elastische pool om deze te verwijderen.
40881 16 De elastische pool %.*ls heeft de limiet voor het aantal databases bereikt. De limiet voor het aantal databases voor de elastische pool mag niet groter zijn dan (%d) voor een elastische pool met DTU's (%d). Er wordt geprobeerd een database te maken of toe te voegen aan een elastische pool wanneer de limiet voor het aantal databases van de elastische pool is bereikt. Overweeg indien mogelijk de DTU's van de elastische pool te verhogen om de databaselimiet te verhogen of databases uit de elastische pool te verwijderen.
40889 16 De DTU's of opslaglimiet voor de elastische pool %.*ls kan niet worden verlaagd, omdat die onvoldoende opslagruimte voor de databases zou bieden. Als u probeert de opslaglimiet van de elastische pool onder het opslaggebruik te verlagen. Overweeg het opslaggebruik van afzonderlijke databases in de elastische pool te verminderen of databases uit de pool te verwijderen om de DTU's of opslaglimiet te verminderen.
40891 16 De DTU min per database (%d) mag de DTU-maximum per database (%d) niet overschrijden. Als u probeert de DTU min per database in te stellen die hoger is dan de DTU max per database. Zorg ervoor dat de DTU min per database niet groter is dan de DTU-maximum per database.
N.t.b. 16 De opslaggrootte voor een afzonderlijke database in een elastische pool mag niet groter zijn dan de maximale grootte die is toegestaan door de elastische pool van de servicelaag %.*ls. De maximale grootte voor de database overschrijdt de maximale grootte die is toegestaan door de servicelaag elastische pool. Stel de maximale grootte van de database in binnen de limieten van de maximale grootte die is toegestaan door de servicelaag elastische pool.

Kan de database master die is aangevraagd door de aanmelding niet openen. De aanmelding is mislukt

Dit probleem treedt op omdat het account geen toegang heeft tot de master database. Sql Server Management Studio (SSMS) probeert echter standaard verbinding te maken met de master database.

Volg deze stappen om dit probleem op te lossen:

  1. Selecteer Opties in het aanmeldingsscherm van SSMS en selecteer vervolgens Verbinding maken ionEigenschappen.

  2. Voer in het Verbinding maken naar databaseveld de standaarddatabasenaam van de gebruiker in als de standaardaanmeldingsdatabase en selecteer vervolgens Verbinding maken.

    Connection properties

Fouten met het kenmerk Alleen-lezen

Als u probeert te schrijven naar een database die alleen-lezen is, krijgt u een foutmelding. In sommige scenario's is de oorzaak van de status Alleen-lezen van de database mogelijk niet onmiddellijk duidelijk.

Fout 3906: kan database DatabaseName niet bijwerken omdat de database het kenmerk Alleen-lezen heeft.

Wanneer u een alleen-lezendatabase probeert te wijzigen, wordt de volgende fout gegenereerd.

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

Mogelijk bent u verbonden met een alleen-lezen replica

Voor zowel Azure SQL Database als Azure SQL Managed Instance bent u mogelijk verbonden met een database op een alleen-lezen replica. In dit geval retourneert READ_ONLYde volgende query met behulp van de functie DATABASEPROPERTYEX():

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

Als u verbinding maakt met BEHULP van SQL Server Management Studio, controleert u of u hebt opgegeven op het tabblad Aanvullende Verbinding maken ionParametersin de verbindingsopties.ApplicationIntent=ReadOnly

Als de verbinding afkomstig is van een toepassing of client met behulp van een verbindingsreeks, controleert u of de verbindingsreeks heeft opgegevenApplicationIntent=ReadOnly. Meer informatie in Verbinding maken naar een alleen-lezen replica.

De database kan zijn ingesteld op alleen-lezen

Als u Azure SQL Database gebruikt, is de database zelf mogelijk ingesteld op alleen-lezen. U kunt de status van de database controleren met de volgende query:

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

U kunt de alleen-lezenstatus voor een database in Azure SQL Database wijzigen met ALTER DATABASE Transact-SQL. U kunt momenteel geen database in een beheerd exemplaar instellen op alleen-lezen.

Controleer of een fout wordt veroorzaakt door een verbindingsprobleem

Als u wilt controleren of een fout wordt veroorzaakt door een verbindingsprobleem, controleert u de stacktracering voor frames waarin aanroepen worden weergegeven om een verbinding zoals de volgende te openen (let op de verwijzing naar de sql Verbinding maken ionklasse):

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

Wanneer de uitzondering wordt geactiveerd door queryproblemen, ziet u een aanroepstack die vergelijkbaar is met het volgende (let op de verwijzing naar de klasse SqlCommand ). In deze situatie kunt u uw query's afstemmen.

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

Zie de volgende bronnen voor aanvullende richtlijnen voor het verfijnen van de prestaties:

Stappen voor het oplossen van algemene verbindingsproblemen

  1. Zorg ervoor dat TCP/IP is ingeschakeld als clientprotocol op de toepassingsserver. Zie Clientprotocollen configureren voor meer informatie. Controleer op toepassingsservers waarop u geen SQL-hulpprogramma's hebt geïnstalleerd, of TCP/IP is ingeschakeld door cliconfg.exe (SQL Server Client Network Utility) uit te voeren.

  2. Controleer de verbindingsreeks van de toepassing om te controleren of deze juist is geconfigureerd. Zorg er bijvoorbeeld voor dat de verbindingsreeks de juiste poort (1433) en de volledig gekwalificeerde servernaam opgeeft. Zie Verbindingsgegevens ophalen.

  3. Probeer de time-outwaarde van de verbinding te verhogen. U wordt aangeraden een time-out voor de verbinding van ten minste 30 seconden te gebruiken.

  4. Test de connectiviteit tussen de toepassingsserver en de Azure SQL Database met behulp van SQL Server Management Studio (SSMS), een UDL-bestand, ping of telnet. Zie Connectiviteitsproblemen en diagnostische gegevens voor connectiviteitsproblemen oplossen voor meer informatie.

    Notitie

    Als stap voor probleemoplossing kunt u ook de connectiviteit op een andere clientcomputer testen.

  5. Zorg er als best practice voor dat de logica voor opnieuw proberen aanwezig is. Zie Tijdelijke fouten en verbindingsfouten met SQL Database oplossen voor meer informatie over logica voor opnieuw proberen.

Als deze stappen uw probleem niet oplossen, probeert u meer gegevens te verzamelen en neemt u contact op met de ondersteuning. Als uw toepassing een cloudservice is, schakelt u logboekregistratie in. Deze stap retourneert een UTC-tijdstempel van de fout. Daarnaast retourneert SQL Database de tracerings-id. Microsoft Customer Support Services kan deze informatie gebruiken.

Zie Diagnostische logboekregistratie inschakelen voor apps in Azure-app Service voor meer informatie over het inschakelen van logboekregistratie.

Volgende stappen

Meer informatie over verwante onderwerpen vindt u in de volgende artikelen: