Exporter (0) Imprimer
Développer tout

Limites des ressources de la Base de données SQL Azure

Mis à jour: juin 2014

base de données SQL Azure surveille l'utilisation des ressources partagées (journal des transactions, E/S, etc.) pour conserver les bases de données dans les limites définies des ressources. Cette limite ou ce seuil de ressources est appelé limite des ressources, et lorsque l'utilisation des ressources par les clients dépasse ces limites, au niveau d'un nœud locataire ou physique, base de données SQL Azure répond en gérant l'utilisation des ressources, ce qui provoque des pertes de connexion ou des refus de demande.

Le tableau suivant fournit un résumé des limites de chaque ressource au-delà desquelles base de données SQL Azure refuse une demande ou met fin aux connexions à la ressource concernée, et un code d'erreur est retourné.

ImportantImportant
Parfois le même code d'erreur est retourné pour plusieurs conditions de limitation d'une ressource. Ces conditions sont identifiées en tant qu'états dans le message d'erreur. Par exemple, les messages d'erreur suivants s'affichent pour la ressource Longueur des journaux de transactions, chacun d'eux contenant le même code/message d'erreur mais différentes valeurs d'état selon les conditions de limitation :

Msg 40552, Level 17, State 1, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

-----------------------------------------------------------

Msg 40552, Level 17, State 2, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

Le tableau suivant et la description contiennent les limites et la description de chaque état dans ces codes d'erreur. Cliquez sur le nom de la ressource dans le tableau pour passer à la description correspondante plus loin dans cette rubrique.

 

Ressource Limite Code d'erreur retourné

Taille de base de données

Dépend du quota de base de données (MAXSIZE)

40544

Durée de transaction

État 1 : 24 heures

État 2 : 20 secondes si une transaction verrouille une ressource requise par une tâche système sous-jacente

40549

Nombre de verrous de transaction

1 million de verrous par transaction

40550

Tempdb

État 1 : 5 Go de l'espace de tempdb

État 2 : 2 Go par transaction dans tempdb

État 3 : 20 % de l'espace total du journal dans tempdb

40551

Longueur des journaux de transactions

État 1 : 2 Go par transaction

État 2 : 20 % de l'espace total du journal

40552

Utilisation de la mémoire

Allocation de 16 Mo de mémoire pendant plus de 20 secondes

40553

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Lorsque l'espace de base de données alloué à la base de données utilisateur est saturé, l'utilisateur obtient une erreur de base de données saturée.

40544 : la base de données a atteint son quota de taille. Partitionnez ou supprimez des données, supprimez des index ou consultez la documentation afin de rechercher des solutions possibles.

Dépend du quota de base de données (MAXSIZE)

DML de non sélection (instruction Insert, Update ou Merge insérée ou mise à jour).

Utilisez les instructions DELETE/DROP pour supprimer des données de la base de données tant que la taille de la base de données n'atteint pas la limite.

Retour au début

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Les transactions demandent des verrous sur les ressources dont elles dépendent, telles que les lignes, les pages ou les tables et libèrent les verrous lorsqu'elles n'ont plus de dépendances sur les ressources verrouillées. Vos demandes peuvent être refusées en raison d'une des deux conditions suivantes :

  • État 1 : si une transaction s'exécute depuis plus de 24 heures, elle est arrêtée.

  • État 2 : si une transaction verrouille une ressource requise par une tâche système sous-jacente pendant plus de 20 secondes, elle est arrêtée.

40549 : la session est arrêtée, car vous avez une transaction longue. Essayez de raccourcir votre transaction.

État 1 : 24 heures

État 2 : 20 secondes si une transaction verrouille une ressource requise par une tâche système sous-jacente

Toute transaction exécutée pendant plus de 24 heures ou instruction DDL ou DML qui accepte un verrou, entraîne le blocage d'une tâche système.

Les opérations par rapport à Base de données SQL ne doivent pas bloquer sur les entrées utilisateur et posséder d'autres dépendances qui entraînent des transactions longues.

Retour au début

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Les sessions qui consomment plus d'un million de verrous sont arrêtées.

40550 : la session a été arrêtée, car elle a acquis trop de verrous. Essayez de lire ou de modifier moins de lignes dans une même transaction.

1 million de verrous par transaction

Toute instruction DDL ou DML.

Les vues de gestion dynamiques suivantes peuvent être utilisées pour surveiller les transactions :

  • sys.dm_tran_active_transactions

  • sys.dm_tran_database_transactions

  • sys.dm_tran_locks

  • sys.dm_tran_session_transactions

Selon le type d'application, il est possible d'utiliser des indicateurs de verrouillage de plus grande ampleur, tels que PAGLOCK ou TABLOCK, pour réduire le nombre de verrous acceptés dans une instruction/transaction donnée. Notez que cela a un impact négatif sur l'accès concurrentiel de l'application.

Retour au début

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Vos demandes sur tempdb peuvent être refusées en raison d'une des trois conditions suivantes :

  • État 1 : si une session utilise plus de 5 Go de l'espace tempdb, elle est arrêtée.

  • État 2 : les transactions dans tempdb avec des journaux d'une taille supérieure à 2 Go sont tronquées. Voici des exemples d'opération qui consomment l'espace du journal dans tempdb : insert, update, delete, merge, create index.

  • État 3 : les transactions non validées dans tempdb bloquent la troncation des fichiers journaux. Pour empêcher cela, la distance entre le plus ancien numéro séquentiel (LSN) actif dans le journal des transactions et la fin du journal (LSN actuel) dans tempdb ne doit pas dépasser 20 % de la taille du fichier journal. En cas de violation, la transaction incriminée dans tempdb est arrêtée et restaurée de façon à ce que le journal puisse être tronquée.

40551 : la session a été arrêtée en raison d'une utilisation excessive de tempdb. Essayez de modifier votre requête de façon à réduire l'utilisation de l'espace de table temporaire.

État 1 : 5 Go de l'espace de tempdb

État 2 : 2 Go par transaction dans tempdb

État 3 : 20 % de l'espace total du journal dans tempdb

Toute instruction DDL ou DML sur tempdb.

Modifiez les requêtes de façon à réduire l'utilisation de l'espace des tables temporaires, supprimer les objets temporaires une fois qu'ils ne sont plus nécessaires, tronquer les tables ou supprimer les tables inutilisées.

Réduisez la taille des données de votre transaction dans tempdb en réduisant le nombre de lignes ou en fractionnant l'opération en plusieurs transactions.

Retour au début

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Vos demandes peuvent être refusées en raison d'une des deux conditions suivantes :

  • État 1 : la base de données SQL prend en charge les transactions générant un journal d'une taille maximale de 2 Go. Les transactions avec des journaux d'une taille supérieure à cette limite sont tronquées. Voici des exemples d'opération qui consomment l'espace du journal dans ce volume : insert, update, delete, merge, create index.

  • État 2 : les transactions non validées bloquent la troncation des fichiers journaux. Pour empêcher cela, la distance entre le plus ancien numéro séquentiel (LSN) actif dans le journal des transactions et la fin du journal (LSN actuel) ne doit pas dépasser 20 % de la taille du fichier journal. En cas de violation, la transaction incriminée est arrêtée et restaurée de façon à ce que le journal puisse être tronqué.

40552 : la session a été arrêtée à cause d'une utilisation excessive de l'espace de journal des transactions. Essayez de modifier moins de lignes dans une même transaction.

État 1 : 2 Go par transaction

État 2 : 20 % de l'espace total du journal

Toute instruction DDL ou DML.

Pour les opérations de ligne, réduisez la taille des données de votre transaction, par exemple en réduisant le nombre de lignes ou en fractionnant l'opération en plusieurs transactions.

Pour les opérations de table/index qui nécessitent une seule transaction, assurez-vous que la formule suivante est respectée : nombre de lignes affectées dans la table * (taille moyenne du champ mis à jour en octets + 80) < 2 Go(En cas de reconstruction d'index, la taille moyenne du champ mis à jour doit être remplacée par la taille moyenne de l'index).

Retour au début

 

Mécanisme de refus de demande/perte de connexion Code d'erreur retourné Limite Type de demandes refusées Recommandation

Lorsque des sessions attendent des allocations de mémoire pendant 20 secondes ou plus, les sessions qui consomment plus de 16 Mo de mémoire pendant plus de 20 secondes sont arrêtées dans l'ordre décroissant du temps pendant lequel la ressource a été conservée, de façon à ce que la session la plus ancienne s'arrête en premier. L'interruption des sessions s'arrête dès que la mémoire nécessaire est disponible.

40553 : la session a été arrêtée en raison d'une utilisation excessive de la mémoire. Essayez de modifier votre requête de façon à traiter moins de lignes.

Allocation de plus de 16 Mo de mémoire pendant plus de 20 secondes.

Requêtes qui consomment les allocations de mémoire, notamment les requêtes qui utilisent des tris et jointures de hachage.

Effectue l'analyse des requêtes qui nécessitent des tris et des jointures de hachage.

Retour au début

Voir aussi

Afficher:
© 2014 Microsoft