Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  GUI  Outils  Déployer  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Planification de l'installation
Planification d'une migration
SQL Server 2005 Developer
SQL Server 2008 R2 Developer
SQL Server 2012 Developer
SQL Server 2014 Developer
SQL Server 2016 Developer
SQL Server 2017 Developer
SQL Server 2019 Developer
Type de données élémentaire
Les instructions de boucles
Référence des mots réservés
Référence des instructions
Référence des fonctions
Référence des bases de données systèmes
Référence des tables systèmes
Référence des vues systèmes
Référence des utilisateurs par défaut
Référence des Stored Procedures système
Objets de base du SQL
Gérer les données avec Transact-SQL
Langage de définition de données/Data Definition Language (DDL)
Instructions DML : Instructions INSERT, UPDATE, DELETE et MERGE
Recherche en texte intégral (Full-Text Search)
Prise en charge de JSON dans SQL Server
STORED PROCEDURES
Les opérations
Activer l'intégration de SQL Server de CLR à l'aide de Transact-SQL
Afficher l'historique des requêtes SQL
Afficher tous les index dans une base de données SQL Server
Afficher toutes les tables dans une base de données
Comment identifier les requêtes SQL d'exécution lente dans SQL Server
Exporter la base de données SQL Server dans un fichier SQL
Exporter des tables dans un fichier .SQL avec Microsoft SQL Server Management Studio
Obtenir le nom du serveur et des bases de données dans SQL Server
SQL Server Management Studio (SSMS)
DBeaver
HeidiSQL
Navicat
SQL Server Analytic Services (SSAS)
SQL Server Data Tools (SSDT)
SQL Server Integration Services (SSIS)
SQL Server Reporting Services (SSRS)
sqlcmd
SQL Data Compare (Redgate)
SSIS avec SQL Server Management Studio (SSMS)
SSIS avec Visual Studio 2017
Références des codes d'erreur du SQL Server
Référence de termes et du vocabulaire
Préface
Notes légal
Dictionnaire
Recherche

Comment identifier les requêtes SQL d'exécution lente dans SQL Server ?

Les requêtes à exécution lente sont l'un des problèmes les plus courants dans toutes les organisations traitant d'énormes quantités de données. Et le problème le plus difficile, est de savoir comment trouver les requêtes lentes et déterminer quelle est la cause réelle du problème de performances. Heureusement, la solution, dans la plupart des cas, est simple. Heureusement, il existe certains outils et techniques qu'un développeur ou un DBA devrait toujours utiliser (au moins) pour avoir une idée juste des requêtes lentes.

Moniteur d'activité (Activity Monitor)

Comme pour tout type de travail dans le monde, des outils spéciaux sont nécessaires. Le processus d'identification des requêtes à exécution lente n'est pas différent. Le premier outil, est un outil intégré dans SQL Server Management Studio; appelé «Moniteur d'activité» ou «Activity Monitor». Vous pouvez l'afficher en cliquant avec le bouton droit sur le nom de l'instance dans SQL Server Management Studio et en sélectionnant «Moniteur d'activité» ou «Activity Monitor». Le moniteur d'activité indique quelles sont les activités actuelles et récentes dans votre instance SQL Server.

Le moniteur d'activité affiche les graphiques des temps de traitement, des tâches en attente et des demandes de lots. En général, plus le nombre de comptages est bas, meilleures sont les performances. Dans les grandes organisations avec une charge énorme, il peut y avoir un grand nombre de demandes par lots avec des temps de traitement élevés, mais cela n'indique pas nécessairement un problème de performances.

Après «Vue d'ensemble» ou «Overview», vous devez vous concentrer sur les processus, ce qui vous donne accès à tous les processus en cours d'exécution dans votre instance et examine plus en détail le nombre de processus en attente, bloqués ou bloqués. De cette façon, vous pouvez vous faire une idée si vos requêtes sont lentes en raison d'une attente spécifique ou si les requêtes prenant du temps sont bloquées par d'autres processus. Dans cette vue, vous pouvez faire un clic droit sur n'importe quel processus et cliquer sur Details pour afficher le TSQL réel en cours d'exécution pour cette session.

Les requêtes bloquées sont celles étant effectivement suspendues en raison de tout autre processus travaillant sur les ressources dont dépend le processus. Donc, si vous trouvez des requêtes étant bloquées par d'autres processus, vérifiez simplement le bloqueur de racine provoquant tout le blocage en regardant la colonne Bloqué par ou Blocked By. Essayez de ne considérer que cette requête, pas tous les processus bloqués.

Les requêtes attendant une ressource spécifique vous donnent des informations sur la ressource d'attente afin que vous puissiez vérifier le type d'attente et essayer de trouver la solution à ce problème. Certaines des statistiques d'attente les plus courantes sont répertoriées dans la section complète des types d'attente SQL Server de SQL Shack. Parcourez là en détail pour d'autres actions. Les requêtes actives et récentes coûteuses vous donneront des informations sur les requêtes ayant un processeur élevé, des lectures logiques ou un temps écoulé élevé.

Vous pouvez accéder à chaque section pour les requêtes coûteuses actuelles ou récentes. Triez-les par Temps écoulé ou Elapsed time, Lecture logique ou Logical Read et Temps CPU ou CPU Time un par un et vérifiez le plan d'exécution. Dans le plan d'exécution, vous serez en mesure de découvrir pourquoi ces requêtes coûteuses prenaient un temps excessif afin que vous puissiez prendre les mesures appropriées pour les résoudre.

Magazin des requêtes (Query Store)

L'outil suivant est le «Magazin des requêtes» ou «Query Store». Il est utile et pourrait vous sauver la vie dans une situation où vous avez été appelé au milieu de la nuit pour vérifier pourquoi SQL Server était lent 1 heure plus tôt. En règle générale, avant SQL Server 2016, sans application tierce ni solution personnalisée, vous ne pouvez pas consulter l'historique de l'exécution des requêtes. Ainsi, le «Magazin des requêtes» ou «Query Store» offre de nombreuses fonctionnalités à valeur ajoutée à cet égard. Si vous disposez de SQL Server 2016 ou version ultérieure, vous devez d'abord l'activer dans les propriétés de votre base de données. On peut utiliser la requête SQL suivante pour activer l'option :

ALTER DATABASE [mabasededonnees] SET QUERY_STORE = ON;

Après avoir activé le «Magazin des requêtes» ou «Query Store», vous aurez les propriétés de votre base de données comme indiqué dans la capture d'écran ci-dessous :

Une fois que vous avez activé le «Magazin des requêtes» ou «Query Store», vous pouvez développer les objets de base de données et accéder aux «Principales requêtes consommatrices de ressources» ou «Top Resource Consuming Queries», comme illustré dans la capture d'écran ci-dessous :

Il est préférable de laissez un jour ou deux au «Magazin des requêtes» ou «Query Store» pour capturer la charge de production afin de pouvoir travailler facilement dessus avec une charge réelle.

Voir également

Référence des opérations

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 9 octobre 2020