Configurer et maintenir les performances

Effectué

Il est important de comprendre les fonctionnalités d’Azure SQL pour garantir des performances cohérentes. Il est également important de comprendre les options et les restrictions que vous configurez dans Azure SQL Managed Instance et Azure SQL Database qui peuvent avoir un impact sur les performances. Ce dernier est détaillé ci-après :

  • Rubriques de la base de données tempdb
  • Configuration de bases de données
  • Configuration de fichiers et de groupes de fichiers
  • Configuration du degré maximal de parallélisme
  • Utilisation de Resource Governor
  • Gestion des index et des statistiques

Tempdb

La base de données système tempdb est une ressource partagée importante utilisée par les applications. Une bonne configuration de tempdb peut affecter votre capacité à fournir des performances cohérentes. Vous utilisez tempdb de la même façon dans SQL Server et Azure SQL. Notez toutefois que votre capacité à configurer tempdb est différente, notamment en ce qui concerne le placement des fichiers, le nombre et la taille des fichiers ainsi que les options de configuration de tempdb.

Les fichiers de base de données de tempdb sont toujours automatiquement stockés sur des disques SSD locaux, ce qui évite les problèmes de performances d’E/S.

Les professionnels de SQL Server utilisent souvent plusieurs fichiers de base de données pour partitionner les allocations des tables de tempdb. Pour Azure SQL Database, le nombre de fichiers est mis à l’échelle avec le nombre de vCores (par exemple, 2 vCores = 4 fichiers), le maximum étant de 16. Le nombre de fichiers n’est pas configurable en utilisant T-SQL sur tempdb, mais vous pouvez le faire en changeant l’option de déploiement. La taille maximale de tempdb est mise à l’échelle conformément au nombre de vCores. Vous recevez 12 fichiers avec SQL Managed Instance, indépendamment du nombre de vCores.

L’option de base de données MIXED_PAGE_ALLOCATION est définie sur OFF et AUTOGROW_ALL_FILES est défini sur ON. Vous ne pouvez pas le configurer, mais, comme pour SQL Server, ce sont les valeurs par défaut recommandées.

La fonctionnalité d’optimisation des métadonnées de tempdb introduite dans SQL Server 2019, qui peut réduire la forte contention de verrous, n’est pas disponible actuellement dans Azure SQL Database ou Azure SQL Managed Instance.

Configuration de la base de données

La configuration de la base de données s’effectue le plus souvent avec les instructions T-SQL ALTER DATABASE et ALTER DATABASE SCOPED CONFIGURATION. La plupart des options de configuration pour les performances sont disponibles pour Azure SQL. Consultez la référence T-SQL ALTER DATABASE et ALTER DATABASE SCOPED CONFIGURATION pour connaître les différences entre SQL Server, Azure SQL Database et Azure SQL Managed Instance.

En matière de performances, le mode de récupération de la base de données est une option que vous ne pouvez pas changer. La récupération complète est sélectionnée par défaut. Cette option garantit que votre base de données peut répondre aux contrats de niveau de service (SLA) Azure. La journalisation minimale pour les opérations en bloc n’est donc pas prise en charge. La journalisation minimale pour les opérations en bloc est prise en charge pour tempdb.

Fichiers et groupes de fichiers

Les professionnels de SQL Server utilisent souvent des fichiers et des groupes de fichiers pour améliorer les performances d’e/s via l’emplacement physique des fichiers. Azure SQL n’autorise pas les utilisateurs à placer des fichiers sur des systèmes de disque spécifiques. Toutefois, Azure SQL a des engagements liés aux ressources pour maintenir les performances des E/S (au niveau des taux, des IOPS et des latences). De cette façon, le fait d’interdire à l’utilisateur de placer physiquement des fichiers peut être un avantage.

Azure SQL Database n’a qu’un seul fichier de base de données (Hyperscale en possède généralement plusieurs), et la taille maximale est configurée par le biais des interfaces Azure. Aucune fonctionnalité ne permet de créer des fichiers supplémentaires.

Azure SQL Managed Instance prend en charge l’ajout de fichiers de base de données et la configuration des tailles, mais pas le placement physique des fichiers. Vous pouvez utiliser le nombre de fichiers et les tailles de fichier de SQL Managed Instance pour améliorer les performances d’E/S. En outre, les groupes de fichiers définis par l’utilisateur sont pris en charge pour SQL Managed Instance dans le but de faciliter la gestion.

Configuration MAXDOP

Le degré maximal de parallélisme (MAXDOP) peut affecter les performances des requêtes individuelles. SQL Server et Azure SQL gèrent MAXDOP de la même façon. Vous pouvez configurer MAXDOP dans Azure SQL à l’aide des techniques suivantes (comme dans SQL Server) :

  • ALTER DATABASE SCOPED CONFIGURATION pour configurer MAXDOP est pris en charge dans Azure SQL.
  • La procédure stockée sp_configure pour « max degree of parallelism » est prise en charge pour SQL Managed Instance.
  • Les indicateurs de requête MAXDOP sont entièrement pris en charge.
  • La configuration de MAXDOP avec Resource Governor est prise en charge dans SQL Managed Instance.

gouverneur de ressources

Resource Governor est une fonctionnalité de SQL Server que vous pouvez utiliser afin de contrôler l’utilisation des ressources pour les charges de travail par le biais des E/S, du processeur et de la mémoire. Notez que pour les pools et groupes de charges de travail définis par l’utilisateur, Resource Governor est pris en charge dans SQL Managed Instance, mais pas dans Azure SQL Database.

Maintenance d’index

La création et la maintenance d’index pour Azure SQL sont exactement les mêmes que pour SQL Server. Par exemple, la création, la reconstruction et la réorganisation des index sont entièrement prises en charge, comme dans SQL Server. Cela comprend les index en ligne et pouvant être repris.

Gestion des statistiques

SQL Server et SQL Azure traitent les statistiques de la même façon. Les options de statistiques automatiques pour les bases de données sont disponibles pour les deux.

Maintenant que vous connaissez certaines des options de configuration et de maintenance pour améliorer les performances d’Azure SQL, effectuez le contrôle des connaissances suivant avant de passer à la prochaine unité.

Contrôle des connaissances

1.

Quelle est la méthode qui permet de configurer le nombre de fichiers de tempdb dans Azure SQL Database ?

2.

Quelle est la méthode qui permet de configurer les performances des E/S pour Azure SQL Database ?

3.

Comment gérez-vous les index avec Azure SQL ?