Contacts

Surveillance de l'efficacité du serveur MS SQL. Recommandations pratiques. Le profileur SQL résout des problèmes

Cet article contient plusieurs documents publiés dans la liste de diffusion "MS serveur SQL - Le boîtier est mince ... "et dédié aux problèmes de surveillance de l'efficacité du serveur MS SQL, des méthodes de clarification des causes des problèmes matériels et de leur permission. De plus, on vous proposera plusieurs recommandations et avertissements utiles et pratiques.

Si votre serveur de base de données est utilisé trop intensément par des E / S, vous pouvez modifier la valeur du système d'exploitation de la limite de verrouillage de la page I / O, qui peut augmenter le taux de lecture / ré-retour efficace. système opérateur sur des disques durs.
Tout d'abord, exécutez le test de référence d'E / S pour votre charge de serveur habituelle. Ensuite, dans Regedit.exe, ouvrez la clé:

HKLM \\ System \\ CurrentControlset \\ Control \\ SessionManager \\ MemoryManagement \\ iopagelockLimit

La signification de vos actions est la sélection étape par étape des valeurs de cette clé au plus optimal, du point de vue des modifications apportées aux résultats des tests de référence, des valeurs.
Dans cette clé, le système d'exploitation lit nombre maximum Octets qu'il peut utiliser pour les opérations d'E / S. Par défaut, la valeur de 0 à laquelle 512 kb est configurée. Augmentez cette valeur sur les étapes, en ajoutant 512 Ko à chaque fois (par exemple: "512", "1024", etc.), et suivez le test de référence de votre système après chaque modification. Augmentez ce paramètre Cela ne signifie que jusqu'à ce que vous observiez une augmentation de la bande passante des opérations d'E / S, qui peuvent se manifester dans la réduction des coûts de temps de la norme opérations de disque. Lorsque vous arrêtez d'observer une amélioration significative, retournez à l'Éditeur du registre et détruisez le dernier incrément.

Avertissement: Il y a une limite sur taille maximum Les valeurs de cette clé. Si vous avez 16 Mo de RAM, n'installez pas IogagElockLimit plus de 2048 octets; Pour 32 Mo de RAM, ne dépassez pas 4096 octets, etc.

Note importante:

Les opérations de Sergey énumérées avec une utilisation non correcte ou erronée peuvent conduire à l'effondrement de votre système. Par conséquent, veillez à la pré-disponibilité des copies de sauvegarde des bases de données et des systèmes, enregistrez la configuration de travail NT et modifiez des modifications possibles dans la décharge. Ne faites jamais plus d'un changement de configuration à la fois.

Dans les numéros précédents (voir Informatique n ° 1, 3-5, 7, 9'2006), nous avons examiné les problèmes liés à la transition vers SQL Server 2005 en migration ou à la mise à jour, ainsi que les scénarios principaux de l'utilisation de SQL Server 2005. Cet article parlera de différentes méthodes d'optimisation de la requête et des approches possibles pour résoudre les problèmes liés aux problèmes de productivité.

SQL Server fournit des services effectués dans un support dynamique et en constante évolution. Par conséquent, la surveillance régulière de l'opération du serveur permet d'identifier des problèmes au stade de leur occurrence et de prendre rapidement des mesures pour les éliminer. Avec l'accumulation de statistiques, une compréhension des principales tendances du travail du serveur apparaît. Collecte de données régulière - même dans ces cas lorsque le serveur fonctionne sans aucun problème, vous permettra de créer un critère de performance de base (base de performance de serveur), qui peut servir de référence avec d'autres mesures du serveur.

Après avoir reçu une norme de performance de base, vous acquérez la possibilité d'analyser la performance des demandes dans divers scénarios. Il est recommandé de faire des mesures, au minimum, avant, pendant et après la mise en œuvre de diverses procédures d'optimisation, ce qui assurera le succès des actions entreprises. De plus, les mesures de performance standard régulières (hebdomadaires, mensuelles, trimestrielles, etc.) fourniront une image plus claire de l'opération du serveur.

La norme de base peut être utilisée pour déterminer l'heure de synchronisation du serveur et l'heure de l'heure d'inactivité (heures de pointe et d'arrêt), le temps de réponse des packages de requête et de commande, heure d'exécution des procédures de création sauvegardes et récupération de données, etc.

Performance des questions

Les performances de la requête doivent être prises à partir de deux points de vue - les ressources utilisées pour effectuer une demande (les ressources incluent les objets auxquels nous appelons lors de l'exécution de la requête, des objets bloqués, etc.) et le temps passé à l'exécution de la Demande, - plus le temps requis pour exécuter la demande, plus la probabilité que, lors du processus de requête, nous bloquerons d'autres requêtes et transactions.

SQL Server 2005 comprend deux outils de base pour mesurer les performances de la requête - le moniteur de performances et le profileur SQL Server. De plus, il est possible d'utiliser des constructions pour obtenir des informations sur l'exécution des demandes. langue T-SQL Dans le groupe Set Statistics - Set Statistics Io, définissez le profil de statistiques et définir le temps de statistiques - et des vues dynamiques (vues de gestion dynamique). Ensuite, nous considérons l'application du moniteur Performance et le profileur SQL Server plus en détail.

Utilisation du moniteur de performance

L'utilitaire de moniteur de performances permet d'analyser les performances des ressources matérielles et logicielles, y compris la mémoire, l'utilisation du réseau, le temps de processeur, ainsi que des informations relatives à travail SQL Serveur et autres produits logiciels - Microsoft Message Queuing (MSMQ), Microsoft. Cadre net. et Microsoft Exchange Server. En particulier, le moniteur Performance peut être utilisé pour surveiller les ressources SQL Server tels que le blocage et les transactions.

Pour ajouter l'envoi, vous vous intéressez, vous devez procéder comme suit:

  1. au menu Démarrer. Sélectionnez une commande COURS. et dans le panneau de dialogue COURS. Entrer perfon.. En conséquence, la console Performance Microsoft Management Console Console (MMC) sera lancée. représentation graphique Un certain nombre de compteurs de performance.
  2. Dans la fenêtre Surveillance du système Appuyez sur le bouton droit du graphique et sélectionnez la commande. Ajouter des compteurs..
  3. Dans le panneau de dialogue Ajouter des compteurs. Sélectionnez l'ordinateur qui vous intéresse et un objet de surveillance. Les objets liés au serveur SQL ont le préfixe approprié.
  4. Pour sélectionner des compteurs, vous devez sélectionner l'option. Tous les compteurs.ou un ou plusieurs mètres de la liste déroulante (Fig. 1).
  1. Après cela, sélectionnez les instances de la base de données ou activez l'option Toutes les instances.
  2. Appuyez sur les boutons Ajouter et fermer compléter l'ajout de comptoirs.

Après que les compteurs intéressés soient ajoutés, nous pouvons afficher leurs valeurs sous la forme d'un graphique ou les enregistrer dans le fichier de trace (fig. 2).

Dans ce dernier cas, il est nécessaire de révéler l'élément Journaux de performance et alertes et cliquez sur la commande Nouveaux paramètres de journal. Dans le panneau de dialogue Nouveaux paramètres de journal Vous devez spécifier le nom du protocole et cliquer sur OK. Ensuite dans le panneau de dialogue Contrepuis. Nous choisissons l'équipe Ajouter des compteurs.. Ajout de conscrits d'intérêt pour nous survient de la même manière que celle décrite ci-dessus. Noter que un grand nombre de Les compteurs peuvent affecter la performance du système. Lorsque vous avez fini d'ajouter des comptoirs, cliquez sur Fermer.

Sur l'onglet GÉNÉRAL. Au chapitre Échantillons de données tous les Vous pouvez définir la fréquence d'échantillonnage (suppression des données). Il est recommandé de commencer par une fréquence moyenne, par exemple toutes les 5 minutes, puis, si nécessaire, le réduire ou l'augmenter. Veuillez noter que la plus courte de l'intervalle d'échantillonnage, les ressources plus systémiques et des disques sont nécessaires. Il faut se rappeler que les intervalles sont plus courts que la période de quantification du compteur, peuvent également entraîner une affichage incorrecte des données. Sur l'onglet Fichiers journaux. Vous pouvez configurer les propriétés du protocole de fichiers et sur Horaire Le calendrier de surveillance est défini. En appuyant sur le bouton OK mène à la création d'un protocole au début de la collecte de données (Fig. 3).

Pour compléter manuellement la journalisation, vous devez appuyer sur le bouton droit de l'élément. Compter des journaux. Et choisissez une commande Arrêter.

Pour afficher les données collectées dans le fichier de protocole de données dans le moniteur de performances, sélectionnez l'élément. Surveillance du système, dans la barre des tâches - Commande Voir le journal. Données.et dans le panneau de dialogue Propriétés du moniteur système. Sur l'onglet La source. Spécifiez le nom du fichier de protocole.

Les compteurs de surveillance des performances les plus fréquemment utilisés, des informations pouvant être utilisées pour déterminer les problèmes liés à la productivité sont divisés en catégories suivantes:

  • l'accès aux données est d'audit les méthodes d'accès aux données applicables à SQL Server lui-même, un objet est utilisé. SQLSERVER: Méthodes d'accès;
  • statistiques - Pour surveiller les demandes de compilation et de recompilation, un objet est appliqué SQLSERVER: STATISTIQUES SQL. Il fournit des informations sur la rapidité et l'efficacité SQL Server Demandes;
  • transactions - Pour déterminer le nombre de transactions dans une seconde, les compteurs appartenant à des objets sont utilisés SQLSERVER: Bases de données. et Sqlserver: transactions;
  • verrouillage - Audit SQL Server Verrencons installés sur certains types de ressources, un objet est appliqué SQLSERVER: serrures. (Tableau 1).

Tableau 1. Compteurs de profileur SQL Server

Tame Counter

La description

Compter le nombre de gammes de balayage (numérisations de gamme) pour des index par seconde

Compte le nombre de numérisation complète effectuée dans la dernière seconde

Recherches d'index / Sec

Compte le nombre de recherches par index pour la dernière seconde

Serrure de table Escalations / Sec

Compte le nombre de serrures pour la table

Tables de travail créées / SEC

Compte le nombre de tables de travail créées dans la dernière seconde

Demandes de lot / s

Compter le nombre de packages de commande transact-sql par seconde. Un grand nombre de packages signifie une bonne bande passante.

Compilations SQL / SEC

Compte le nombre de compiles de demandes par seconde. La valeur de ce compteur doit être presque constante après que l'utilisateur soit exécuté par les actions de base.

SQL Re-compilations / Sec

Compte le nombre de recomiations de demandes par seconde

SQLSERVER: Objet des bases de données. Transactions / SEC Counter

Calcule le nombre de transactions exécutées dans la base de données pour la dernière seconde

SQLSERVER: Objet Transactions. Temps de fonctionnement de la transaction la plus longue

Calcule le nombre de secondes depuis le début de la transaction, qui était actif plus longtemps que toute autre transaction en cours. Si ce compteur affiche une transaction très longue, utilisez la procédure stockée SYSS.DM_TRAN_ACELACE_TRANSACTIONS () pour obtenir des informations sur cette transaction.

SQLSERVER: Objet Transactions. Mettre à jour le compteur de ratio de conflit

Compter le pourcentage de transactions à l'aide d'une isolation d'image (isolation d'instantané) pour résoudre des conflits émergents lors de la mise à jour des données de la dernière seconde

Temps d'attente moyen (MS)

Calcule le temps d'attente moyen pour chaque requête de blocage qui a provoqué l'attente

Demandes de verrouillage / seconde

Compte le nombre de serrures et de transformations de serrures par seconde

Lock Wait Time (MS)

Calcule l'attente totale des serrures pour la dernière seconde

Compter le nombre de requêtes de verrouillage par seconde, qui a conduit à attendre

Le deuxième utilitaire pouvant être utilisé pour mesurer les performances de la requête est le profileur SQL Server. Ensuite, nous considérons les moyens de base de l'utiliser.

Utilisation du profileur SQL Server

L'utilitaire de profileur SQL Server sert à mesurer les performances de requêtes individuelles et de requêtes incluses dans les procédures stockées et les packages de commande dans le SQL transact-SQL. Avec elle, vous pouvez collecter des informations sur la productivité, y compris le temps passé à l'exécution d'une commande séparée, le temps de blocage pour exécuter la commande, ainsi que le plan d'exécution (plan d'exécution).

Pour créer un nouveau profil, vous devez effectuer un certain nombre des étapes suivantes:

  1. Exécutez le profileur SQL Server ( Microsoft SQL Server 2005 \u003d\u003e Outils de performance \u003d\u003e Profileur SQL Server).
  2. au menu Déposer Sélectionnez une commande Nouvelle trace..
  3. Dans le panneau de dialogue Connecter au serveur choisir serveur requis. Et cliquez sur le bouton Relier..
  4. Dans le panneau de dialogue Trace Propriétés. besoin de définir le nom du profil (Nom de trace)et dans la liste Utilisez le modèle. Sélectionnez l'un des modèles disponibles ou ViergeSi le modèle n'est pas utilisé.
  5. Pour enregistrer les résultats du profilage, sélectionnez l'option Enregistrer dans le fichier. Pour écrire des données dans un fichier et spécifier la taille maximale du fichier (valeur par défaut - 5 Mo), vous pouvez éventuellement activer l'option. Activer le roulement de fichier pour création automatique nouveau fichier pour atteindre la taille de profil spécifié. Deuxième possibilité - enregistrer des données dans la table de base de données (Enregistrer dans la table) - Option Définir le maximum de lignes. Vous permet de définir le nombre maximum d'enregistrements.
  6. Vous pouvez utiliser l'option pour tâche le temps d'achèvement Activer le temps d'arrêt de la trace (Fig. 4).

Pour spécifier les colonnes d'événements et de données pour le profil, les étapes suivantes sont requises:

  1. Dans le panneau de dialogue Trace Propriétés. Aller à l'onglet Sélection d'événements.
  2. Ajouter ou supprimer des événements du profil à l'aide de la table de classes d'événements.
  3. Pour obtenir la liste de tous les événements disponibles, activez l'option. Montrer tous les événements. (Fig. 5).

Dans l'onglet. 2 répertorie les événements de profileur SQL Server les plus couramment utilisés. Comme des compteurs de performances, les événements de profileur SQL Server sont divisés en plusieurs catégories, certaines d'entre elles ont intérêt à résoudre nos tâches.

Tableau 2. Événements de profileur SQL Server

Nom de l'événement

La description

Cet événement se produit à la fin de l'appel d'appeler une procédure distante.

Cet événement est effectué à la fin de la procédure stockée.

SP: STMTCOMPLETED

Cet événement se produit à la fin de l'une des commandes transact-sql à l'intérieur de la procédure stockée.

SQL: STMTCOMPLETED

Cet événement est terminé à la fin de la commande transact-sql

SQL: LOTCompéint.

Cet événement se produit à la fin de l'exécution du package de commandes transact-sql.

Cet événement est effectué lorsque la transaction obtient une serrure sur une ressource

Cet événement se produit lorsque la transaction libère la ressource précédemment bloquée

Cet événement est effectué lorsque le temps d'attente est dépassé à la réception de la serrure, car la ressource requise est déjà bloquée par une autre transaction.

Comment déterminer la présence de serrures

Chaque fois qu'une transaction est utilisée dans la transaction (table, page, index, etc.), le blocage est installé pour celui-ci. Si une autre transaction tente d'accéder à cette ressource et que le type de blocage est incompatible avec le blocage déjà installé, un nouveau blocage se produit.

Pour déterminer la présence de verrous, vous pouvez appliquer les méthodes suivantes:

  • utilisez l'utilitaire de moniteur d'activité SQL Server Management Studio Studio, qui affiche des informations sur les processus, les verrous au niveau du processus et au niveau de l'objet. Pour accéder à l'activité Monitor dans SQL Server Management Studio, vous devez sélectionner un élément. La gestionet en informatique - Moniteur d'activité Et double-cliquez sur cet élément. Moniteur d'activité vous permet de voir:

Objets bloqués pour chaque processus - pour déterminer la requête qui a conduit à l'apparence du blocage, utilisez l'identifiant de processus ID de processus de serveur (SPID) Sur la page Information sur le processus,

Processus forçant d'autres processus à être dans un état d'attente - pour identifier ces processus, utilisez la colonne Bloqué par. Sur la page Information sur le processus (Fig. 6);

  • appliquez le profileur SQL Server pour obtenir un rapport sur les processus bloqués - Cette liste affiche des informations sur les processus restés bloqués plus longtemps que l'heure spécifiée. à propos de

Profileur SQL - logicielutilisé pour tracer le serveur SQL Server. "Tracing" - Séance de collecte de travail SQL Server 2008

Nomination principale:

Le profileur SQL est utilisé par les administrateurs pour:

· Analyse de l'application de l'application;

· Définitions de l'optimalité des demandes envoyées au serveur;

· Détecter les commandes de transaction-SQL lors de l'exécution d'une erreur;

· Collecte d'informations sur l'activité de l'utilisateur pendant un intervalle de longue date;

· Pour surveiller le fonctionnement du serveur en temps réel.

Nouvelles opportunités:

une. Services d'analyse de profilage;

b. Profil suivant des services d'intégration;

c. La possibilité d'enregistrer les lectures du moniteur de performances lors de l'enregistrement de l'exécution de la commande.

ré. Dans le profileur, de nombreux nouveaux événements et sources d'informations pouvant être sélectionnés pour écrire dans le fichier de trace sont ajoutés;

f. Capacité à collecter des événements dans la fenêtre du profileur.

Travailler avec le profileur SQL Server

1. Exécutez le profileur SQL Server - dans le menu Programmes de démarrage dans SQL Server 2008à Performance Toolsà SQL Server Profiler.

2. Dans la fenêtre qui s'ouvre dans le menu Déposer choisir Nouvelle trace. Et connectez-vous au SQL Server 2008, dont nous suivrons le travail.

3. Configurez les paramètres de session dans la fenêtre Trace Propriétés.qui s'ouvre automatiquement au début de la session de trace (voir fig. 8.1).

Figure. 8.1. Définition des paramètres de la session de trace

une. Sur l'onglet GÉNÉRAL. Sélectionnez dans la liste Utilisez le modèle. Le modèle le plus approprié. La sélection du modèle est effectuée à l'aide du menu. Déposer à Modèles. dans le profileur SQL Server. Initialement à votre disposition - huit modèles:

1). Standard (par défaut) - le modèle par défaut qui vous permet de suivre toutes les procédures stockées et des commandes et des commandes transact-sql;

2). SP_Counts. - Collecte d'informations sur l'exécution de procédures stockées et de fonctionnalités avec le tri par nom;

3). Tsql - Collection d'informations sur tous commandes transact-sqlfonctionner pour exécuter sur le serveur, avec l'identifiant des processus utilisateur et l'heure de début;

4). Tsql_duration. - similaire au modèle précédent, mais au lieu d'informations sur l'heure de lancement de la commande TSQL, le temps est enregistré qu'il a pris son exécution;

5). Tsql_groupé. - En plus des informations sur le code de commande Transact-SQL et son temps de départ, des informations sur le nom de l'application sont également enregistrées, compte Utilisateur dans le système d'exploitation et le compte d'utilisateur utilisé pour se connecter;



6). Tsql_replay. - enregistrer les informations les plus détaillées sur les commandes transact-sql effectuées;

7). TSQL_SPS. - En plus d'enregistrer des informations sur le début de la procédure de magasin (SP: Démarrer), des informations sur l'exécution de chacune des commandes de la procédure stockée sont enregistrées (SP: stmtstarting);

8). Réglage. - Utilisé pour collecter des informations conseillères de syntonisation de la base de données nécessaires.

b. Sur l'onglet GÉNÉRAL. Si vous avez besoin de spécifier l'emplacement des informations de trace:

une). Les informations de trace peuvent être configurées pour figurer (5 Mo par défaut):

· Paramètre Activer le roulement de fichier Détermine si ce qui suit est créé automatiquement lors de la remplacement d'un fichier unique. Le nom du fichier suivant sera le même que le nom de la précédente, mais le nombre (1, 2, 3, etc.) sera ajouté à son nom.

· Paramètre Serveur traite les données de trace Vous pouvez utiliser pour augmenter la fiabilité des informations de trace d'enregistrement. Après avoir installé ce message de traitement d'informations d'enregistrement, le serveur sera engagé.

2). Les informations de trace peuvent être enregistrées dans table SQL Serveur. La table avec l'ensemble de colonnes souhaitée sera créée automatiquement.

3). Utilisation du paramètre Activer le temps d'arrêt de la trace Vous pouvez spécifier l'heure à laquelle la trace est désactivée automatiquement.

c. Sur l'onglet Sélection d'événements Définir les paramètres de collecte d'informations. Dans le tableau sur cet onglet, vous devez sélectionner les événements souhaités (lignes) et les informations (dans les colonnes), qui seront enregistrées pour eux. Pour afficher toutes les lignes et toutes les colonnes, vous devez installer des drapeaux. Montrer tous les événements. et Afficher toutes les colonnes.

une). Utilisez le bouton Filtres de colonne. (Filtres de colonne) Personnalisez les filtres information nécessaire (Actions de piste effectuées dans une base de données spécifique ou une application spécifique, ou un utilisateur spécifique) - Comme ou alors PAS COMME;

2). Utiliser le bouton Organiser des colonnes. (Organiser des colonnes) Configurez l'ordre des colonnes pour afficher ou écrire dans un profileur avec la possibilité de grouper le groupe de section de données.

4. Après avoir défini tous les paramètres de trace, cliquez sur le bouton. COURS. (Run) (voir Fig. 8.2)

Figure. 8.2. Voir les informations pendant la trace Session

En haut de la fenêtre, les événements survenant sur le serveur sont affichés et en bas - est donné. des informations détaillées Pour chaque événement (par exemple, code de commande SQL).

Opportunités disponibles dans la fenêtre Trace:

1. Si sur l'onglet Organiser des colonnes. Dans les propriétés du modèle, vous avez choisi des colonnes pour le groupement, vous pouvez regrouper ces colonnes d'enregistrement dans la fenêtre de visualisation. À cette fin dans le menu VUE. Équipe fournie Vue groupée.;

2. Si sur la liste Grouper. Une seule colonne a été placée, alors vous avez la possibilité d'utiliser le mode d'affichage. Vue agrégée. (Voir Fig. 8.3). Ce mode est activé à l'aide de la commande. Vue agrégée. Du même menu VUE..

Figure. 8.3. Mode d'affichage Vue agrégée.

3. Vous pouvez ouvrir des événements dans le profileur, enregistré dans les fichiers et les tables de trace. Il est également possible de répéter les opérations statutaires à l'aide du menu. REJOUER.;

4. Vous pouvez lier les informations de trace avec les indicateurs de compteur de performances du moniteur système. Pour ça:

· Déterminez la session de trace, au cours de laquelle les informations pour les colonnes doivent être enregistrées. Heure de début et Heure de fin;

· Exécuter une session de trace avec l'enregistrement d'informations vers un fichier ou une table. Collecter simultanément des compteurs dans le fichier Moniteur de performances;

· Ouvert informations collectées Dans le fichier de trace du profileur, puis utilisez la commande Données d'importation de performances. Du menu Déposer.

Dans cette conférence, nous continuerons d'étudier les procédures stockées qui ont commencé dans la "création de procédures stockées et de la gestion de ces procédures". Vous apprendrez à analyser des procédures stockées et d'autres instructions T-SQL à l'aide de Microsoft SQL Server Query Analyzer Analyzer Analyzer et Profil SQL Server Profiler. De cette analyse, vous pouvez déterminer comment les opérateurs T-SQL efficaces sont efficaces. Une requête SQL Server efficace utilise une séquence d'opérations appropriée et des indices appropriés pour réduire le nombre de lignes traitées et minimisant le nombre d'opérations d'E / S.

Utilisation d'Analyzer Query, vous pouvez voir le plan d'exécution sélectionné pour l'opérateur T-SQL. optimizer des demandes Serveur SQL. Optimiseur de requête - Ceci est un module interne qui cherche meilleur plan Exécutions pour chaque opérateur T-SQL. Optimiseur de requête Analyse chaque instruction T-SQL, examine un certain nombre de plans d'exécution possibles et évalue le "coût" de chaque plan du point de vue des ressources et du temps de traitement requis. Le plan est sélectionné avec le coût le plus petit. Le coût de chaque plan est déterminé sur la base des statistiques existantes, qui sont collectées par le système et peuvent être obsolètes. Comme vous pouvez en savoir plus sur votre base de données et vos données que optimiseur de requêteVous pourrez peut-être créer un plan qui sera meilleur que l'optimiseur de requêtes. Utilisation des informations fournies par Query Analyzer, vous pouvez déterminer si le plan d'optimisation de la requête sera efficace pour certains opérateursEt sinon, vous pouvez essayer d'optimiser cet opérateur, de la modifier ou d'utiliser l'invite SQL. Dans cette conférence, vous apprendrez à optimiser les instructions T-SQL, qui seront une ajout à l'étude de l'utilisation de l'analyseur de requête.

Utilisation du profileur, vous pouvez analyser des opérations dans votre système SQL Server pour déterminer quelles procédures SQL et stockées utilisent inutilement. ressources système. Possédant cette information, vous pouvez concentrer vos efforts de syntonisation principalement sur ces opérateurs et les procédures stockées. En plus de la description de l'utilisation du profileur, cette conférence montre également comment utiliser les informations obtenues à l'aide du profileur.

Utiliser SQL Query Anysenzer

L'utilitaire de requête Analyzer est livré avec Microsoft SQL Server 2000 en retour

Dans notre travail, nous sommes assez souvent confrontés à la situation lorsque certaine demande fonctionne lentement et dans le texte de la demande, il n'est pas clair problèmes évidents. Habituellement, dans ce cas, il est nécessaire d'enquêter sur le problème à un niveau plus profond. En règle générale, il devient nécessaire de voir le texte de l'enregistreur SQL et de son plan, ce qui contribue simplement à SQLProfiler.

Quel est le profileur SQL et pourquoi il est généralement nécessaire

SQLPROFILEROMETH Le programme fourni avec MS SQL Server et est conçu pour et visualiser tous les événements qui se produisent dans le serveur SQL ou en parlant en d'autres termes pour enregistrer la trace. Pourquoi SQLProfiler peut-il être nécessaire par un programmeur 1C? Au moins afin d'obtenir le texte de la requête SQL et de voir son plan. Bien sûr, cela peut être fait avec l'aide d'un magazine technologique, mais cela nécessite certaines compétences et le plan du DVG n'est pas si beau et lisible. Dans le profileur, vous pouvez voir non seulement du texte, mais également le plan graphique d'effectuer la demande, qui, à mon avis, est beaucoup plus pratique. En outre, en utilisant le profileur, vous pouvez définir: les demandes plus longues que quelques demandes de temps à une table spécifique d'attente sur les serrures des chômages des moules et ...

Analyse des requêtes à l'aide du profileur SQL

Le profileur le plus courant est utilisé spécifiquement pour l'analyse de la requête. En règle générale, nous n'avons pas besoin de suivre toutes les demandes, il est souvent nécessaire de voir comment une requête spécifique en 1C est diffusée en SQL et voir le plan d'exécution. Par exemple, il peut être nécessaire de déterminer pourquoi la demande est effectuée lentement ou que nous avons écrit une grosse demande et que vous souhaitez vous assurer que le texte de requête SQL ne contient pas de connexions avec sous-requête. Pour attraper une demande de traçage, nous procédons comme suit:

1. Exécutez SQL Profiler Start - Tous les programmes - Microsoft SQL Server 2008 R2 - Moyens de performance - SQLProfiler
2. Créez un nouveau fichier de trace - Créer une trace (Ctrl + N)
3. Indiquez le serveur DBMS auquel notre base de données est située et cliquez sur "Connecter".

Naturellement, rien n'empêche le traçage du serveur DBMS, qui est sur un autre ordinateur. 4. Dans la fenêtre "Propriétés de trace" qui apparaît, allez au deuxième signet "Sélection des événements"

5. Maintenant, vous devez spécifier les événements et les propriétés de ces événements que nous souhaitons voir dans la trace. Nous avons besoin de questions et demandons des plans, il est donc nécessaire de permettre aux événements pertinents. Pour le spectacle liste complète Les propriétés et les événements incluent les drapeaux "Afficher toutes les colonnes" et "Afficher tous les événements". Ensuite, vous devez sélectionner uniquement les événements indiqués dans la figure ci-dessous, tous les autres événements doivent être désactivés.


Description de l'événement: ShowplanStatisticsProfile - Plan de texte pour l'exécution de la requête.
Plan d'exécution de la requête graphique de ShowplanXMLStatisticsProfile.
RPC: Texte de requête terminé s'il est exécuté sous forme de procédure (si la demande 1C est exécutée avec des paramètres).
SQL: Texte de requête BatchCompéded si elle est exécutée sous forme de requête régulière (si la demande 1C est satisfaite sans paramètres).

6. Vous devez maintenant configurer le filtre pour les événements. Si cela n'est pas fait, nous verrons alors des demandes pour toutes les bases de données situées sur ce serveur DBMS. Appuyez sur la touche "Filtres de colonne" et spécifiez le filtre par le nom de la base de données.

Nous verrons maintenant dans la recherche uniquement des demandes de la base de données "testbase_8_2" Si vous le souhaitez, vous pouvez mettre le filtre et sur d'autres champs, le plus intéressant d'entre eux: durée (durée), TextData (généralement c'est le texte de la requête) et RowCounts (nombre de lignes de la demande renvoyées).

Par exemple, si j'ai besoin d'attraper toutes les demandes de la table "_Inforg4312" avec une durée de plus de 3 secondes dans la base de données "testbase_8_2", alors je fais:
a) Filtre de base de données, l'exemple est indiqué ci-dessus
b) Filtre de durée en millisecondes.

C) filtrer par demande texte


Ici, nous soulignons le masque. Si vous avez besoin de suivre les demandes qui font appel à plusieurs tables, nous créons plusieurs éléments dans la section "Semble". Les conditions de tous les filtres fonctionnent ensemble.

7. Vous pouvez maintenant exécuter la trace. Cliquez sur "Exécuter", après que la trace commence à fonctionner et que vous pouvez voir ces événements que vous avez configurés et qui tombent sous vos filtres. Vous pouvez utiliser les boutons de la commande pour contrôler la trace.


À gauche pour la droite: Eraser - Efface la fenêtre de trace, démarrage - Démarre la traçage, Pause - met une pause de trace, tout en appuyant sur la trace, arrêtez-vous

8. La fenêtre de trace elle-même consiste en deux parties. En haut, il y a des événements et des propriétés d'événements. Dans la partie inférieure, diverses informations sont affichées en fonction du type d'événements. Dans notre cas, il sera affiché sur le texte de la requête ou son plan.

9. Effectuez une requête à la console de requête 1C et voyez comment cela affectera le profileur.


Dans la trace, il est clair que les demandes étaient quelque peu et qu'une seule d'entre elles est. Les demandes restantes sont des services.

10. Selon les propriétés des événements, vous pouvez comprendre: combien de secondes la requête est exécutée, combien de lectures logiques (lit), combien de lignes renvoyées à la suite (RowCounts), etc. Dans mon cas, la demande a été effectuée 2 millisecondes, fabriquée 4 lectures logiques et une chaîne de retour renvoyée.

11. Si vous vous levez à un événement ci-dessus, nous pourrons voir le plan de demande sous forme graphique.
Comme on peut le voir dans le plan, la recherche est effectuée sur l'indice au prix, bien que ce plan ne puisse pas être qualifié de parfait, car L'index ne couvre pas, le code de champ et le nom sont obtenus à l'aide de Keylookup, qui prend 50% du temps.


Utilisation du menu contextuel, le plan graphique peut être enregistré dans fichier séparé. avec l'extension * .sqlplan et ouvrez-la dans un profileur sur un autre ordinateur ou avec un plus avancé programmes SQL Explorateur de plan Sentry.

12. Si vous augmentez encore plus haut, nous verrons le même plan de requête, mais déjà sous forme de texte. C'est ce plan qui est affiché dans la TJ, le PC et d'autres moyens de contrôler les performances de 1C. Pour l'analyser, je recommande d'utiliser Avancé éditeur de texte Avec rétro-éclairé, par exemple Notepad ++.

13. J'utilise le menu "Fichier-Enregistrer sous", vous pouvez enregistrer la totalité de la trace à divers formats:
a) Dans le format du profilee lui-même, c'est-à-dire Avec l'extension * .trc
b) au format XML
c) Vous pouvez faire un modèle de modèle de traçage. Voir l'élément suivant.
d) Vous pouvez enregistrer la trace comme une table de base de données. Manière commode si nous devons trouver par exemple la plupart lenteur Dans l'ensemble de la trace ou sélectionnez Demandes pour n'importe quel paramètre. Fichier - Enregistrer AS - Table de traçage - Sélectionnez le serveur DBMS et connectez-le. Ensuite, vous devez sélectionner une base de données sur le serveur spécifié et spécifier le nom de la table dans lequel la trace sera enregistrée. Vous pouvez choisir déjà table existanteOu écrivez un nouveau nom, puis la table sera créée automatiquement dans la base de données sélectionnée.

Il convient de garder à l'esprit que la durée est stockée dans une table en millions de secondes de seconde et lorsque le résultat est dérivé, il est souhaitable de traduire une valeur en millisecondes. De la même manière, la colonne RWIPHumber est ajoutée à la table, ce qui montre le numéro de cette chaîne en trace.

14. Si vous avez souvent besoin d'utiliser un profileur pour analyser les demandes, le réglage des filtres et des événements nécessaires sera rapidement fatigué et en plus, cela prendra beaucoup de temps. Les modèles tracieux viennent à la rescousse, où nous spécifions les filtres dont nous avons besoin et l'ordre de colonne, puis sélectionnez ce modèle lors de la création d'une nouvelle trace. Pour créer un modèle, utilisez le menu Fichier - Modèles - Nouveau modèle

Sur le premier signet, tout est simple. Spécifiez le type de serveur, le nom du modèle et, si nécessaire, mettez le drapeau à utiliser ce modèle par défaut. Sur la deuxième onglet, faites le choix des événements et définir les filtres, comme indiqué ci-dessus. Je vous recommande également de définir l'ordre des colonnes dans le traçage, il enregistre le temps lors de l'analyse des demandes. Par exemple, il est plus pratique pour moi d'utiliser l'ordre suivant.

Maintenant, lors de la création d'une nouvelle trace, vous pouvez simplement spécifier le modèle souhaité, puis sur la deuxième onglet Tous les filtres et événements seront automatiquement remplis.

Bien sûr, toutes les façons d'utiliser ce merveilleux outil sont indiqués ici, s'il existe un intérêt public, alors à l'avenir, il sera possible de reconstituer la collection d'articles sur ce sujet.



Avez-vous aimé l'article? Partagez-le