Serveur d'impression

Meilleures pratiques pour les instances SQL Server | Documentation du moteur de calcul | Google Cloud – Bien choisir son serveur d impression

Le 13 octobre 2019 - 16 minutes de lecture

Vous pouvez appliquer plusieurs meilleures pratiques pour optimiser Compute Engine.
instances qui exécutent Microsoft SQL Server. Pour apprendre à mettre en place un
instance SQL Server hautes performances, à lire
Création d'une instance SQL Server hautes performances.

Configuration de Windows

Cette section couvre les sujets de configuration relatifs à l’optimisation de Microsoft.
Système d'exploitation Windows pour les performances de SQL Server lors de l'exécution
Moteur de calcul.

Configuration du pare-feu Windows

Meilleur entrainement: Utilisez le pare-feu avancé de Windows Server et spécifiez l'adresse IP
adresses de vos ordinateurs clients.

Le pare-feu avancé Windows est un composant de sécurité important dans Windows
Serveur. Lorsque vous configurez votre environnement SQL Server pour pouvoir vous connecter à
la base de données d’autres machines client, configurez le pare-feu pour autoriser
trafic entrant:

Pare-feu advfirewall netsh add nom de la règle = "SQL Access" ^
dir = en action = autoriser ^
program = "% programfiles%  Microsoft SQL Server  MSSQL12.MSSQLSERVER  MSSQL  Binn  sqlservr.exe" ^
remoteip =[LOCAL_SUBNET]

Lorsque vous utilisez cette règle de pare-feu, il est recommandé de spécifier l'adresse IP.
de vos machines clientes. Spécifiez une liste d'adresses IP séparées par des virgules avec
pas d'espaces pour le télécommande paramètre à la place de [LOCAL_SUBNET]. Aussi,
notez que le chemin pour le programme paramètre peut changer en fonction de la
version de SQL Server que vous utilisez.

L’image d’application SQL Server comprend un serveur SQL Règle de pare-feu Windows.
Cette règle est relativement illimitée, pensez donc à la désactiver avant votre système.
va à la production.

Réglage des connexions réseau

Meilleur entrainement: Utilisez les paramètres réseau par défaut du système d'exploitation.

Les paramètres réseau par défaut de la plupart des systèmes d’exploitation sont configurés pour
connexions sur de petits ordinateurs connectés à des réseaux moyennement rapides.
De tels réglages sont généralement suffisants. En outre,
Les valeurs par défaut conservatrices font en sorte que le trafic réseau ne submerge pas
le réseau et les ordinateurs connectés.

Sur Compute Engine, les instances de machine virtuelle sont attachées à un
réseau conçu par Google
qui offre une capacité et une performance élevées. Le physique
les serveurs exécutant vos instances Compute Engine sont hautement optimisés
profiter de la capacité de ce réseau. Les pilotes de réseau virtuel dans votre
instances sont également optimisées, ce qui rend les valeurs par défaut suffisantes pour
la plupart des cas d'utilisation.

Installation de l'antivirus

Meilleur entrainement: Suivez les instructions de Microsoft relatives à l'antivirus
Logiciel.

Si vous utilisez Windows, vous devriez utiliser un logiciel antivirus.
Les logiciels malveillants et les virus logiciels présentent un risque important pour tout système connecté
un réseau et un logiciel antivirus est une simple étape de réduction que vous pouvez utiliser
pour protéger vos données. Cependant, si le logiciel antivirus n’est pas configuré correctement,
cela peut avoir un impact négatif sur les performances de votre base de données.
Microsoft fournit des conseils sur la manière de choisir un logiciel antivirus.

Optimiser pour la performance et la stabilité

Cette section fournit des informations sur la façon d'optimiser les performances de SQL Server.
sur le moteur de calcul et les activités opérationnelles pour aider à le garder
courir doucement.

Déplacement de fichiers de données et de fichiers journaux sur un nouveau disque

Meilleur entrainement: Utilisez un disque persistant SSD distinct pour les fichiers journaux et les fichiers de données.

Par défaut, l’image préconfigurée pour SQL Server est fournie avec tout.
installé sur le disque persistant de démarrage, qui se monte en tant que lecteur `C:`. Considérer
attacher un disque persistant SSD secondaire
et déplacer les fichiers journaux et les fichiers de données sur le nouveau disque.

Utiliser un SSD local pour améliorer les IOPS

Meilleur entrainement: Créer de nouvelles instances SQL Server avec une ou plusieurs
SSD locaux pour stocker le
tempdb et fichiers de pagination Windows.

La nature éphémère de la technologie SSD locale en fait un mauvais candidat pour
à utiliser pour vos bases de données critiques et vos fichiers importants. Cependant, le tempdb
et le fichier d'échange Windows sont deux fichiers temporaires, ce qui en fait d'excellents candidats
pour passer à un SSD local. Cela décharge un nombre important d'opérations IO
à partir de vos disques persistants SSD. Vous pouvez en savoir plus sur la configuration
ici.

Traitement de requête parallèle

Meilleur entrainement: Met le max degré de parallélisme à 8.

Le paramètre par défaut recommandé pour max degré de parallélisme est de correspondre
au nombre de processeurs sur le serveur. Cependant, il y a un point où casser une
requête en 16 ou 32 morceaux, en les exécutant tous sur différents vCPU, puis
consolider le tout en un seul résultat prend beaucoup plus de temps que si seulement
une vCPU avait exécuté la requête. En pratique, 8 fonctionne comme une bonne valeur par défaut.

Meilleur entrainement: Surveiller pour CXPACKET attend et augmente progressivement
seuil de coût pour le parallélisme.

Ce réglage va de pair avec max degré de parallélisme. Chaque unité représente
une combinaison de travail processeur et E / S nécessaire pour exécuter une requête avec une exécution en série
plan avant qu'il soit envisagé pour un plan d'exécution parallèle. La valeur par défaut est 5.
Bien que nous ne donnions aucune recommandation spécifique pour changer la valeur par défaut, il est
à surveiller et, si nécessaire, à l'augmenter progressivement de 5 au cours de la
test de charge. Un indicateur clé de l’augmentation éventuelle de cette valeur est la
présence de CXPACKET attend. Bien que la présence de CXPACKET attend pas
indique nécessairement que ce paramètre devrait changer, c’est un bon point de départ.

Meilleur entrainement: Surveillez les différents types d’attente et ajustez la
paramètres de traitement en parallèle ou les définir au niveau de la base de données individuelle.

Les bases de données individuelles peuvent avoir différents besoins en parallélisme. Vous pouvez définir ces
paramètres globalement, et définir Max DOP au niveau de la base de données individuelle. Toi
doit observer vos charges de travail uniques, surveiller les temps d’attente, puis ajuster la
valeurs en conséquence.

Le site SQLSkills
offre un guide de performance utile qui couvre les statistiques d'attente dans la base de données.
Suivre ce guide peut vous aider à comprendre ce qui attend et comment atténuer
les retards.

Gestion des journaux de transaction

Meilleur entrainement: Surveillez la croissance du journal des transactions sur votre système.
Pensez à désactiver la croissance automatique et à définir votre fichier journal à une taille fixe, basée sur
sur votre accumulation journalière moyenne.

L’une des sources de perte de performance et d’intermittence les plus négligées
ralentissements correspond à la croissance non gérée du journal des transactions. Lorsque votre base de données est
configuré pour utiliser le Plein modèle de récupération, vous pouvez effectuer une restauration sur
moment, mais vos journaux de transactions se remplissent plus rapidement. Par défaut, lorsque le
journal des transactions est plein, SQL Server augmente la taille du fichier à ajouter
plus d'espace vide pour écrire plus de transactions, et bloque toute activité sur le
base de données jusqu'à ce qu'il se termine. SQL Server augmente chaque fichier journal en fonction de son
Taille maximale du fichier et le Croissance de fichier réglage.

Lorsque le fichier a atteint sa taille maximale et ne peut plus grossir, le système
émet un
Erreur 9002
et met la base de données en mode lecture seule. Si le fichier peut grossir, SQL Server
augmente la taille du fichier et met à zéro l'espace vide. Le réglage pour Fichier
Croissance
La valeur par défaut est 10% de la taille actuelle du fichier journal. Ce n'est pas un bon
paramètre par défaut pour les performances, car plus le fichier est volumineux, plus la
il faut créer le nouvel espace vide.

Meilleur entrainement: Planifiez des sauvegardes régulières du journal des transactions.

Quels que soient les paramètres de taille et de croissance maximum, planifiez
sauvegardes du journal des transactions,
qui tronque par défaut les anciennes entrées du journal
et permet au système de réutiliser l’espace fichier existant. Ce simple
tâche de maintenance peut vous aider à éviter les baisses de performances aux heures de pointe.

Optimisation des fichiers journaux virtuels

Meilleur entrainement: Surveillez la croissance du fichier journal virtuel et prenez des mesures pour empêcher
fragmentation du fichier journal.

Le fichier de journal de transaction physique est segmenté en fichiers de journal virtuel (VLF). Nouveau
Les fichiers VLF sont créés chaque fois que le fichier de journal de transaction physique doit croître. Si
vous n'avez pas désactivé l'auto-croissance, et la croissance est trop fréquente
de nombreux fichiers VLF sont créés. Cette activité peut entraîner une fragmentation du fichier journal, qui
est similaire à la fragmentation du disque et peut affecter négativement les performances.

SQL Server 2014 a introduit un algorithme plus efficace pour déterminer combien de
VLF à créer pendant la croissance automatique. En règle générale, si la croissance est inférieure à 1/8 du
taille du fichier journal actuel, SQL Server crée un fichier VLF au sein de ce nouveau fichier.
segment. Auparavant, il créait 8 VLF pour une croissance comprise entre 64 Mo et 1 Go,
et 16 VLF pour une croissance supérieure à 1 Go. Vous pouvez utiliser le script TSQL ci-dessous pour vérifier
combien de VLF votre base de données a actuellement. S'il y a des milliers de fichiers,
envisagez de réduire et de redimensionner manuellement votre fichier journal.



--Vérifiez les VLF en remplaçant le nom de votre base de données ci-dessous
UTILISATION 
DECLARE @vlf_count INT
DBCC LOGINFO
SET @vlf_count = @@ ROWCOUNT
SELECT VLFs = @vlf_count

Vous pouvez en savoir plus sur les VLF sur
Le site de Brent Ozar.

Éviter la fragmentation d'index

Meilleur entrainement: Défragmentez régulièrement les index de vos fichiers les plus volumineux
tables modifiées.

Les index dans vos tables peuvent devenir fragmentés, ce qui peut conduire à une mauvaise
performances de toutes les requêtes utilisant ces index. Un programme d'entretien régulier
devrait inclure la réorganisation des index sur vos tables les plus modifiées.
Vous pouvez exécuter le script T-SQL suivant pour votre base de données pour afficher les index et
leur pourcentage de fragmentation. Vous pouvez voir dans l’exemple des résultats que le
PK_STOCK L'indice est fragmenté à 95%. Dans l'instruction 'SELECT' suivante,
remplacer '[YOUR_DB]'avec le nom de votre base de données:



SELECT stats.index_id comme id, nom, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID (N '[YOUR_DB]'), NULL, NULL, NULL, NULL) AS stats
    JOIN sys.indexes AS indx ON stats.object_id = indx.object_id
      AND stats.index_id = indx.index_id AND nom IS NOT NULL;

RÉSULTATS
-------------------------------
Nom de l'identifiant avg_fragmentation_in_percent
-------------------------------
1 COMMANDES_I1 0
2 COMMANDES_I2 0
1 ORDER_LINE_I1 0.01
1 PK_STOCK95.5529819557039
1 PK_WAREHOUSE0.8

Lorsque vos index sont trop fragmentés, vous pouvez les réorganiser avec un simple
MODIFIER scénario. Voici un exemple de script qui imprimera le MODIFIER
instructions que vous pouvez exécuter pour chacun des index de vos tables.



SÉLECTIONNER
'ALTER INDEX ALL ON' + nom_table + 'REORGANIZE;
ALLER'
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ET TABLE_CATALOG = 'YOUR_DB'

Choisissez les tables du jeu de résultats qui ont la plus grande fragmentation, et
puis exécutez ces instructions progressivement. Envisager de programmer ceci ou un
script similaire comme l'un de vos travaux de maintenance réguliers.

Sauvegarde

Meilleur entrainement: Planifiez les sauvegardes et effectuez-les régulièrement.

Le site d'Ola Hallengren
fournit un bon point de départ pour comprendre comment mettre en œuvre une sauvegarde solide
et plan de maintenance.

Lorsque vous effectuez des sauvegardes régulières de la base de données, veillez à ne pas en consommer trop.
disque persistant IOPS. Utilisez le disque SSD local pour organiser vos sauvegardes, puis appuyez dessus.
dans un compartiment Cloud Storage.

surveillance

Meilleur entrainement: Utilisez la surveillance Stackdriver.

Vous pouvez installer l'agent de surveillance Stackdriver pour Microsoft
les fenêtres

d’envoyer plusieurs points de données de surveillance dans le système Stackdriver.

En utilisant les capacités de collecte de données,
vous pouvez affiner les informations que vous souhaitez surveiller et les envoyer à le
entrepôt de données de gestion intégré
.
L’entrepôt de données de gestion peut fonctionner sur
le même serveur que vous surveillez, ou les données peuvent être transmises à un autre SQL
Instance de serveur exécutant l'entrepôt.

Données de chargement en vrac

Meilleur entrainement: Utiliser une base de données séparée pour mettre en scène et transformer des données en vrac
avant de le déplacer vers des serveurs de production.

Il est probable que vous deviez charger de grandes quantités de données dans votre système à
moins une fois, si pas régulièrement. C’est une opération gourmande en ressources, et vous
pourrait atteindre le
limite IOPS de disque persistant
quand vous faites des chargements en vrac.

Il existe un moyen simple de réduire la consommation en vrac d'E / S de disque et de CPU
opérations, avec l'avantage supplémentaire d'accélérer le temps d'exécution de votre
travaux par lots. La solution ici est de créer une base de données complètement séparée qui
utilise le Facile modèle de récupération, puis utiliser cette base de données pour la mise en attente et
transformer l'ensemble de données en vrac avant de l'insérer dans votre production
base de données. Vous pouvez également placer cette nouvelle base de données sur un lecteur SSD local, si vous le souhaitez.
avoir assez d'espace. Cela réduira la consommation de ressources de votre masse
opérations, ainsi que le temps nécessaire pour terminer les travaux. Le dernier avantage est
que votre travail de sauvegarde des données de production n’aura pas à sauvegarder toutes les
opérations en vrac dans le journal des transactions, et sera donc plus petit et
cours plus vite.

Valider votre configuration

Meilleur entrainement: Testez votre configuration pour vérifier qu'elle fonctionne comme
attendu.

Lorsque vous configurez un nouveau système, vous devez prévoir de valider le
configuration et exécution de tests de performance. Ce stocké
procédure

est une excellente ressource pour évaluer
votre configuration SQL Server. Prenez le temps de lire plus tard sur le
drapeaux de configuration, et exécutez la procédure.

Optimisation de SQL Server Enterprise Edition

SQL Server Enterprise Edition possède une longue liste de fonctionnalités ajoutées sur
Édition standard. Si vous migrez une licence existante vers GCP, il existe des
certaines options de performance que vous pourriez envisager de mettre en œuvre.

Utiliser des tables compressées

Meilleur entrainement: Activer la compression de table et d’index.

Il peut sembler contre-intuitif que la compression de tables puisse rendre votre système
performer plus rapidement, mais dans la plupart des cas, c’est ce qui se passe. Le compromis utilise un
petite quantité de cycles du processeur pour compresser les données et éliminer les E / S de disque supplémentaires
nécessaire pour lire et écrire les plus gros blocs. En règle générale, moins le disque I / O votre
système utilise, plus ses performances seront meilleures. Instructions pour l'estimation et
permettant la compression de table et d’index sont sur le MSDN
site Internet
.

Activation de l'extension du pool de mémoire tampon

Meilleur entrainement: Utilisez l'extension du pool de mémoire tampon pour accélérer l'accès aux données.

Le pool de mémoire tampon est l'endroit où le système stocke pages propres. En termes simples, il
stocke des copies de vos données, reflétant à quoi elles ressemblent sur le disque. Quand les données
changements de mémoire, on appelle cela page sale, qui doit être vidé sur le disque pour
enregistrer les modifications. Lorsque votre base de données est plus grande que votre mémoire disponible, cela
met la pression sur le pool de mémoire tampon et permet de supprimer les pages propres. Quand le propre
les pages sont supprimées, le système devra lire le disque la prochaine fois que le
les données abandonnées doivent être consultées.

La fonctionnalité d'extension du pool de mémoire tampon
vous permet de pousser des pages propres sur un SSD local,
au lieu de les laisser tomber. Cela fonctionne dans le même sens que la mémoire virtuelle,
c'est-à-dire par échanger, et vous donne accès aux pages propres du
SSD local, ce qui est plus rapide que ce que vous obtiendriez en allant sur le disque normal
récupérer les données.

Cette technique n’est pas aussi rapide que d’avoir assez
mémoire, mais cela peut vous donner une augmentation modeste du débit lorsque votre disponibilité
la mémoire est basse. Vous pouvez en savoir plus sur les extensions de pool de mémoire tampon et examiner certaines
analyse comparative des résultats sur Brent Ozar
site
.

Et après

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.