{"id":985,"date":"2010-05-10T17:28:36","date_gmt":"2010-05-10T16:28:36","guid":{"rendered":"http:\/\/blog.capdata.fr\/?p=985"},"modified":"2023-01-04T09:32:48","modified_gmt":"2023-01-04T08:32:48","slug":"sqldiag-episode-2","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/","title":{"rendered":"SQLDIAG (\u00e9pisode 2)"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985&#038;title=SQLDIAG%20%28%C3%A9pisode%202%29\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=SQLDIAG%20%28%C3%A9pisode%202%29&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Deuxi\u00e8me \u00e9pisode de la trilogie sur SQLDIAG et les outils avanc\u00e9s de diagnostic autour de SQL Server. Nous parlerons aujourd&#8217;hui du r\u00e9sultat de la trace lanc\u00e9e lors du <a title=\"SQLDIAG episode 1\" href=\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-1\/\">rapport pr\u00e9c\u00e9dent<\/a> et de son contenu. Nous verrons comment charger le contenu de la trace SQL et du fichier BLG dans SQL Profiler pour interpr\u00e9tation. Puis nous verrons comment mettre en place RML Utilities pour agr\u00e9ger et afficher le r\u00e9sultat d&#8217;une trace SQLDIAG.<\/p>\n<h2>Contenu d&#8217;une trace SQLDIAG:<\/h2>\n<p>Une fois la trace termin\u00e9e, Ctrl-C stoppe le collecteur et commence \u00e0 \u00e9crire les fichiers r\u00e9sultats sous l&#8217;arborescence. On retrouve une arborescence telle que:<\/p>\n<pre><span style=\"color: #0000ff;\">&lt;NOM TRACE&gt;\r\n|___ log_*.trc\r\n|___ MS2K8-WIN2008-1__sp_sqldiag_Shutdown.OUT\r\n|___ MS2K8-WIN2008-1_MSINFO32.txt\r\n|___ MS2K8-WIN2008-1_SQLDIAG__sp_trace_*.trc\r\n|___ SQLDIAG.lbg\r\n|___ internal\r\n\u00a0\u00a0\u00a0\u00a0 |___ *.txt\r\n\u00a0\u00a0\u00a0\u00a0 |___ *.OUT\r\n<\/span><\/pre>\n<ul>\n<li><strong>log*.trc<\/strong>: ces fichiers contiennent la trace par d\u00e9faut de l&#8217;instance. Ils ont \u00e9t\u00e9 copi\u00e9s de leur r\u00e9pertoire origine (le plus souvent ~MSSQL\\LOG). Cf note bas de page dans le <a title=\"SQLDIAG  episode 1\" href=\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-1\/\">premier article<\/a>.<\/li>\n<\/ul>\n<ul>\n<li><strong>MS2K8-WIN29008-1__sp_sqldiag_Shutdown.OUT<\/strong>: ce fichier est divis\u00e9 en plusieurs parties. Il n&#8217;est g\u00e9n\u00e9r\u00e9 qu&#8217;au moment du Crtrl-C pour ne pas rater d&#8217;\u00e9v\u00e8nements survenus pendant la trace. Il commence par contenir le contenu de chaque fichier ERRORLOG*, puis la configuration de l&#8217;instance, la liste des processus (sp_who), la liste des verrous (sp_lock), la liste des bases (sp_helpdb), des informations sur le binaire (xp_msver), donne la liste de toutes les proc\u00e9dures stock\u00e9es \u00e9tendues d\u00e9clar\u00e9es (sp_helpextendedproc) , et le contenu de sysprocesses, sys.dm_exec_sessions, ::fn_virtualservernodes() si sur cluster, sysdevices, sysdatabases, sys.master_files. Enfin, la liste des requ\u00eates en cours d&#8217;ex\u00e9cution. Le reste , o\u00f9 chaque vue sys.dm_os* est r\u00e9cup\u00e9r\u00e9e, est plus \u00e0 destination du support pour diagnostic. Cel\u00e0 leur donne une image pr\u00e9cise de l&#8217;activit\u00e9 au niveau des schedulers (SQLOS), de la m\u00e9moire, des latches, des modules charg\u00e9s dans l&#8217;espace d&#8217;adressage de sqlservr.exe, etc&#8230; C&#8217;est beaucoup plus pratique que de faire g\u00e9n\u00e9rer un dump ou un mini-dump au client qui rencontre un probl\u00e8me. D&#8217;ailleurs, il y aura certainement un article prochainement sur les vues sys.dm_os* principales, je ne m&#8217;\u00e9tends donc pas dessus, car pour l&#8217;instant ce n&#8217;est pas ce qui nous int\u00e9resse.<\/li>\n<\/ul>\n<ul>\n<li><strong>MS2K8-WIN29008-1_MSINFO32.txt<\/strong>: Contient le contenu au format texte de msinfo32. Toutes les informations syst\u00e8mes sont contenues dans ce fichier, class\u00e9es par section entre crochets ([]). Nombre d&#8217;entre elles sont sans int\u00e9r\u00eat (IRQ\/DMA, p\u00e9riph\u00e9riques, clavier, pilotes, etc&#8230;), il y cependant certaines sections qui valent le coup d&#8217;oeil: [System Summary] pour les informations syst\u00e8mes courantes (OS, CPU, m\u00e9moire, etc&#8230;), [Drives] et [Disks] pour les disques, [Running Tasks] pour les processus en cours d&#8217;ex\u00e9cution, [Windows Error Reporting] pour les messages d&#8217;erreurs de l&#8217;eventvwr.<\/li>\n<\/ul>\n<ul>\n<li><strong>MS2K8-WIN29008-1_SQLDIAG__sp_trace_*.trc<\/strong>: ces fichiers contiennent la trace SQL Trace que l&#8217;on a param\u00e9tr\u00e9e dans le fichier XML.<\/li>\n<\/ul>\n<ul>\n<li><strong>SQLDIAG.blg<\/strong>: ce fichier contient la trace syst\u00e8me param\u00e9tr\u00e9e dans le fichier XML.<\/li>\n<\/ul>\n<ul>\n<li><strong>~internal\\<\/strong>: ce sous r\u00e9pertoire contient les logs de l&#8217;ex\u00e9cution de SQLDIAG. En fonction de la version utilis\u00e9e, les fichiers OUT et txt peuvent se trouver au m\u00eame niveau que les fichiers r\u00e9sultats.<\/li>\n<\/ul>\n<p>Les deux axes qui vont nous int\u00e9resser sont principalement les fichiers de trace SQL et le fichier BLG. Les autres fichiers seront plus \u00e0 utiliser \u00e0 des fins de diagnostic.<\/p>\n<h2><strong>Charger une trace SQL et un fichier BLG dans SQL Profiler:<\/strong><\/h2>\n<p>Il est possible de charger un fichier de compteurs perfmon et une trace SQL dans SQL Profiler pour corr\u00e9lation. Ce n&#8217;est possible toutefois que si les deux traces ont \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9es ensembles, le plus souvent \u00e0 l&#8217;aide d&#8217;un outil comme SQLDIAG ou PSSDIAG. Tout d&#8217;abord, ouvrir la trace SQL dans Profiler, puis <em>File-&gt;Import Performance Data&#8230;<\/em> S\u00e9lectionner le fichier BLG g\u00e9n\u00e9r\u00e9 dans la m\u00eame trace, puis les compteurs \u00e0 charger (pour plus de lisibilit\u00e9, on ne prendra que les compteurs disque dans notre cas), et importer la trace:<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1025\" title=\"SQLDIAG1\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG11.jpg\" alt=\"\" width=\"516\" height=\"480\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG11.jpg 516w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG11-300x279.jpg 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/a><\/p>\n<p>L&#8217;\u00e9cran se divise en quatre parties. Les zones extr\u00eames repr\u00e9sentent l&#8217;affichage classique de SQL Profiler: texte et statistiques des requ\u00eates. La partie centrale pr\u00e9sente les graphes associ\u00e9s aux compteurs du fichier BLG, et la partie inf\u00e9rieure la liste des compteurs avec les valeurs Min, Max, Average:<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-995\" title=\"SQLDIAG2\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21-1024x703.jpg\" alt=\"\" width=\"1024\" height=\"703\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21-1024x703.jpg 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21-300x206.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21-768x527.jpg 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG21.jpg 1149w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Il est possible de zoomer et de d\u00e9placer le curseur temporel dans la partie centrale, et Profiler va pointer sur les requ\u00eates ex\u00e9cut\u00e9es \u00e0 l&#8217;instant s\u00e9lectionn\u00e9, et la valeur de &#8216;<em>Selected<\/em>&#8216; dans la partie inf\u00e9rieure est \u00e9galement mise \u00e0 jour pour chaque compteur.<\/p>\n<p>Maintenant il faut bien faire attention \u00e0 ce que l&#8217;on lit ou ce que l&#8217;on interpr\u00e8te. Il faut bien se rendre compte que SQL Trace collecte les statistiques pour un \u00e9v\u00e8nement une fois qu&#8217;il s&#8217;est termin\u00e9, donc ce n&#8217;est pas parce qu&#8217;on va pointer sur un pic CPU ou un de temps de service disque\u00a0 qu&#8217;on va tomber pile sur le probl\u00e8me. On va dire que \u00e7a facilite la t\u00e2che, \u00e7a permet de corr\u00e9ler des informations, mais \u00e7a ne fait pas le travail \u00e0 votre place. Une requ\u00eate peut commencer \u00e0 faire des lectures physiques depuis le disque pendant une minute, puis faire d&#8217;autres op\u00e9rations en m\u00e9moire (des tris, des agr\u00e9gations) et se terminer un certain temps\u00a0 apr\u00e8s le pic. Un petit exemple d&#8217;une requ\u00eate qui fait des acc\u00e8s physiques pendant 1 minute et qui se termine \u00e0 la fin du pic. Si on ne regarde pas bien, on rate l&#8217;information:<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-997\" title=\"SQLDIAG3\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3-1024x460.jpg\" alt=\"\" width=\"1024\" height=\"460\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3-1024x460.jpg 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3-300x135.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3-768x346.jpg 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/SQLDIAG3.jpg 1142w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h2>RML Utilities:<\/h2>\n<p>RML Utilities est une petite application due, comme pas mal d&#8217;outils et d&#8217;avanc\u00e9es sur le moteur, \u00e0 l&#8217;initiative de l&#8217;\u00e9quipe <a title=\"MS PSS\" href=\"https:\/\/blogs.msdn.com\/psssql\">Customer Support Services<\/a>. La premi\u00e8re version de RML s&#8217;appuyait sur deux binaires <a title=\"KB1\" href=\"https:\/\/support.microsoft.com\/kb\/887057\">Ostress et ReadTrace<\/a> principalement, elle a \u00e9t\u00e9 refondue en 2007 pour incorporer une petite application d&#8217;affichage des traces, bas\u00e9e sur des reports RDL. Les versions x86 et x64 sont t\u00e9l\u00e9chargeables depuis <a href=\"https:\/\/blogs.msdn.com\/psssql\/archive\/2007\/12\/18\/rml-utilities-for-microsoft-sql-server-released.aspx\">la page d&#8217;accueil de RML<\/a>. L&#8217;installation n&#8217;a rien de compliqu\u00e9, donc on va passer directement \u00e0 la phase d&#8217;int\u00e9gration des traces.<\/p>\n<p>Cette int\u00e9gration se fait avec ReadTrace. Tout d&#8217;abord, on va cr\u00e9er une base pour stocker les donn\u00e9es des traces:<\/p>\n<pre><span style=\"color: #0000ff;\">create database RMLDB<\/span><\/pre>\n<p>Puis ReadTrace avec les options -I&lt;chemin vers fichier trc initial&gt; -S&lt;instance&gt; -d&lt;Baserepository&gt; (important de ne pas laisser d&#8217;espace entre le commutateur et le param\u00e8tre)<\/p>\n<pre><span style=\"color: #888888;\"><span style=\"color: #0000ff;\">$ .\/ReadTrace -IE:\/SQLDIAG\/TRACE3\/SQL2008__sp_trace.trc -SMS2K8-Win2008-1 -E -dRMLDB<\/span>\r\n\r\n<em>05\/10\/10 17:13:20.920 [0X000013B4] Output path was not specified; defaulting to C:\\Users\\capdata\\AppData\\Local\\Temp\\2\\\\output\r\n05\/10\/10 17:13:21.000 [0X000013B4] Readtrace a SQL Server trace processing utility.\r\nVersion 9.01.0109 built for x86.\r\nCopyright (c) Microsoft Corporation 1997-2008. All rights reserved.\r\n05\/10\/10 17:13:21.002 [0X000013B4] Number of processors: 1\r\n05\/10\/10 17:13:21.002 [0X000013B4]\u00a0\u00a0\u00a0\u00a0 Active proc mask: 0x00000001\r\n05\/10\/10 17:13:21.008 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Architecture: 0\r\n05\/10\/10 17:13:21.009 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Page size: 4096\r\n05\/10\/10 17:13:21.009 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Highest node: 0\r\n05\/10\/10 17:13:21.010 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Package mask: 0x00000001\r\n05\/10\/10 17:13:21.011 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Processor(s): 0x00000001 Function units: Separated\r\n05\/10\/10 17:13:21.011 [0X000013B4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Processors: 0x00000001 assigned to Numa node: 0\r\n05\/10\/10 17:13:21.012 [0X000013B4] -IE:\/SQLDIAG\/TRACE3\/SQL2008__sp_trace.trc\r\n05\/10\/10 17:13:21.012 [0X000013B4] -SMS2K8-Win2008-1\r\n05\/10\/10 17:13:21.013 [0X000013B4] -E\r\n05\/10\/10 17:13:21.013 [0X000013B4] -dRMLDB\r\n05\/10\/10 17:13:21.014 [0X000013B4] Using language id (LCID): 1024 [French_France.1252] for character formatting with NLS: 0x00500100 and Defined: 0x00050100\r\n05\/10\/10 17:13:21.015 [0X000013B4] Attempting to cleanup existing RML files from previous execution\r\n05\/10\/10 17:13:21.016 [0X000013B4] Using extended RowsetFastload synchronization\r\n05\/10\/10 17:13:21.017 [0X000013B4] Establishing initial database connection:\r\n05\/10\/10 17:13:21.017 [0X000013B4] Server: MS2K8-Win2008-1\r\n05\/10\/10 17:13:21.018 [0X000013B4] Database: RMLDB\r\n05\/10\/10 17:13:21.018 [0X000013B4] Authentication: Windows\r\n05\/10\/10 17:13:21.470 [0X000013B4] Using SQL Client version 10\r\n05\/10\/10 17:13:21.471 [0X000013B4] Creating or clearing the performance database\r\n05\/10\/10 17:13:22.916 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace.trc (SQL 2005)\r\n05\/10\/10 17:13:22.918 [0X000013B4] Validating core events exist\r\n05\/10\/10 17:13:22.919 [0X000013B4] Validating necessary events exist for analysis\r\n05\/10\/10 17:13:22.921 [0X000013B4] Validating necessary events exist for RML breakout\r\n05\/10\/10 17:13:22.922 [0X000013B4] WARNING: Event [Server: Server Memory Change] missing from trace\r\n05\/10\/10 17:13:22.923 [0X000013B4] WARNING REPLAY: The following trace events were not captured: [Sessions:ExistingConnection, Security Audit: Audit Login, Se\r\nrity Audit: Audit Logout, Stored Procedures: RPC Output Parameter, Cursors:Unprepare, Cursors:CursorClose, Cursors:CursorPrepare, Cursors:CursorCreated, Curso\r\n:CursorExecute, TSQL: Prepare SQL, TSQL: Unprepare SQL, Errors and Warnings:Attention, Transactions:SQLTransaction, Transactions:DTCTransaction, Transactions:\r\n:Begin Tran starting and completed, Transactions:TM:Commit Tran starting and completed, Transactions:TM:Rollback Tran starting and completed, Transactions:TM:\r\nve Tran starting and completed, Transactions:TM:Promote Tran starting and completed, SQL:BatchStarting and SQL:BatchCompleted, RPC:Starting and RPC:Completed]\r\nReview the help file to ensure that you have collected the appropriate set of events and columns for RML replay needs.\u00a0 Lack of these events can lead to sever\r\nreplay problems.\r\n\r\nTrace flag -T28 disables the check allowing RML output processing. *** Use with caution as the output and behavior could be unpredictable.\r\n05\/10\/10 17:13:22.993 [0X000013B4] Events Read: 1000 Queued: 1000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.026 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_1.trc (SQL 2005)\r\n05\/10\/10 17:13:23.038 [0X000013B4] Events Read: 2000 Queued: 2000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.070 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_2.trc (SQL 2005)\r\n05\/10\/10 17:13:23.082 [0X000013B4] Events Read: 3000 Queued: 3000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.261 [0X000013B4] Events Read: 4000 Queued: 4000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.271 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_3.trc (SQL 2005)\r\n05\/10\/10 17:13:23.284 [0X000013B4] Events Read: 5000 Queued: 5000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.328 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_4.trc (SQL 2005)\r\n05\/10\/10 17:13:23.342 [0X000013B4] Events Read: 6000 Queued: 6000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.361 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_5.trc (SQL 2005)\r\n05\/10\/10 17:13:23.366 [0X000013B4] Events Read: 7000 Queued: 7000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.396 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_6.trc (SQL 2005)\r\n05\/10\/10 17:13:23.406 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_7.trc (SQL 2005)\r\n05\/10\/10 17:13:23.475 [0X000013B4] Events Read: 8000 Queued: 8000 Processed\/sec: 0\r\n05\/10\/10 17:13:23.574 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_8.trc (SQL 2005)\r\n05\/10\/10 17:13:24.175 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_9.trc (SQL 2005)\r\n05\/10\/10 17:13:24.313 [0X000013B4] Events Read: 9000 Queued: 8998 Processed\/sec: 2\r\n05\/10\/10 17:13:24.854 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_10.trc (SQL 2005)\r\n05\/10\/10 17:13:24.905 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_11.trc (SQL 2005)\r\n05\/10\/10 17:13:24.939 [0X000013B4] Processing file: E:\\SQLDIAG\\TRACE3\\SQL2008__sp_trace_12.trc (SQL 2005)\r\n05\/10\/10 17:13:24.959 [0X000013B4] Found TRACE_STOP with 0 bytes of data\r\n05\/10\/10 17:13:24.961 [0X000013B4] Found [TRACE_STOP] event indicating the end of the trace files.\r\n05\/10\/10 17:13:24.962 [0X000013B4] Reads completed\r\n05\/10\/10 17:13:24.965 [0X000013B4] Shutting down the worker thread message queues.\r\n05\/10\/10 17:13:24.996 [0X000013B4] Waiting for the worker threads to complete final actions.\r\n05\/10\/10 17:13:26.074 [0X000013B4] Performing general cleanup actions.\r\n05\/10\/10 17:13:26.076 [0X000013B4] Reducing cached memory.\r\n05\/10\/10 17:13:26.096 [0X000013B4] Total Events Processed: 11117\r\n05\/10\/10 17:13:26.101 [0X000013B4]\u00a0 Total Events Filtered: 0\r\n05\/10\/10 17:13:26.102 [0X000013B4] Parse errors: 0\r\n05\/10\/10 17:13:26.224 [0X000013B4] Table ReadTrace.tblUniqueBatches: loaded ~445 rows\r\n05\/10\/10 17:13:26.225 [0X000013B4] Table ReadTrace.tblUniqueStatements: loaded ~0 rows\r\n05\/10\/10 17:13:26.225 [0X000013B4] Table ReadTrace.tblUniquePlans: loaded ~0 rows\r\n05\/10\/10 17:13:26.226 [0X000013B4] Table ReadTrace.tblUniquePlanRows: loaded ~0 rows\r\n05\/10\/10 17:13:26.241 [0X000013B4] Table ReadTrace.tblBatches: loaded ~4355 rows\r\n05\/10\/10 17:13:26.242 [0X000013B4] Table ReadTrace.tblStatements: loaded ~0 rows\r\n05\/10\/10 17:13:26.243 [0X000013B4] Table ReadTrace.tblPlans: loaded ~0 rows\r\n05\/10\/10 17:13:26.244 [0X000013B4] Table ReadTrace.tblPlanRows: loaded ~0 rows\r\n05\/10\/10 17:13:26.257 [0X000013B4] Table ReadTrace.tblInterestingEvents: loaded ~3 rows\r\n05\/10\/10 17:13:26.258 [0X000013B4] Table ReadTrace.tblConnections: loaded ~0 rows\r\n05\/10\/10 17:13:26.262 [0X000013B4] WARNING: One or more warning conditions exist that may affect the quality of the analysis data.\u00a0 See RMLDB.ReadTrace.tblWar\r\nngs table and the ReadTrace log for complete details.\r\n05\/10\/10 17:13:26.269 [0X000013B4] Indexing tables...\r\n05\/10\/10 17:13:27.413 [0X000013B4] Doing post-load data cleanup...\r\n05\/10\/10 17:13:27.863 [0X000013B4] Computing partial aggregates...\r\n05\/10\/10 17:13:28.977 [0X000013B4] Data load completed.\r\n05\/10\/10 17:13:28.979 [0X000013B4] Using execution path: c:\\Program Files\\Microsoft Corporation\\RMLUtils\r\n05\/10\/10 17:13:28.980 [0X000013B4] Launching [c:\\Program Files\\Microsoft Corporation\\RMLUtils\\Reporter.exe]\r\n05\/10\/10 17:13:29.253 [0X000013B4] *******************************************************************************\r\n* ReadTrace encountered one or more WARNINGS. A warning condition typically\u00a0\u00a0 *\r\n* continues processing with reduced functionality, but the ReadTrace output\u00a0\u00a0 *\r\n* may be adversely affected. Review the log file for details.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\r\n*******************************************************************************\r\n05\/10\/10 17:13:29.324 [0X000013B4]\r\n<\/em><\/span><span style=\"color: #888888;\">\u00a0<\/span><\/pre>\n<p>Les deux warnings indiquent juste qu&#8217;il va manquer certains \u00e9v\u00e8nements, notamment les \u00e9v\u00e8nements pour pouvoir faire un replay dans Profiler.\u00a0 A la fin du chargement, l&#8217;application &#8216;<em>Reporter<\/em>&#8216; est lanc\u00e9e et permet de visualiser les informations de la trace:<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1018\" title=\"RML1\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML1.jpg\" alt=\"\" width=\"986\" height=\"710\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML1.jpg 986w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML1-300x216.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML1-768x553.jpg 768w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/a><\/p>\n<p>Ensuite, il est assez simple de naviguer dans l&#8217;interface et de visualiser l&#8217;information agr\u00e9g\u00e9e, par exemple en cliquant sur &#8216;<em>Unique Batches&#8217;<\/em>:<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1019\" title=\"RML2\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2.jpg\" alt=\"\" width=\"989\" height=\"703\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2.jpg 989w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2-300x213.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2-768x546.jpg 768w\" sizes=\"auto, (max-width: 989px) 100vw, 989px\" \/><\/a><\/p>\n<p>&#8230; et de rep\u00e9rer les requ\u00eates consommatrices par crit\u00e8re (co\u00fbt CPU, I\/Os, dur\u00e9e), et visualiser le plan (si pris dans la trace):<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1021\" title=\"RML4\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML4.jpg\" alt=\"\" width=\"918\" height=\"351\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML4.jpg 918w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML4-300x114.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML4-768x294.jpg 768w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/a><\/p>\n<p>Dernier \u00e9pisode, on verra OSTRESS et ORCA, et les alternatives \u00e0 SQLDIAG+RML Utilites: PSSDIAG, SQL Nexus, SQLH2, Data Collector, les reports SSMS.<\/p>\n<p>A+ David B. (avec la collaboration de Martial LUCAS. )<\/p>\n<div id=\"_mcePaste\" style=\"overflow: hidden; position: absolute; left: -10000px; top: 2180px; width: 1px; height: 1px;\">lrwxrwxrwx 1 root root 4 2008-07-09 12:41 \/bin\/sh -&gt; bash<\/p>\n<\/div>\n<p><script type=\"text\/javascript\" src=\"https:\/\/tcr.tynt.com\/javascripts\/Tracer.js?user=d4FlbGI04r35lZadbi-bpO\"><\/script><\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985&#038;title=SQLDIAG%20%28%C3%A9pisode%202%29\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=SQLDIAG%20%28%C3%A9pisode%202%29&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F985\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Deuxi\u00e8me \u00e9pisode de la trilogie sur SQLDIAG et les outils avanc\u00e9s de diagnostic autour de SQL Server. Nous parlerons aujourd&#8217;hui du r\u00e9sultat de la trace lanc\u00e9e lors du rapport pr\u00e9c\u00e9dent et de son contenu. Nous verrons comment charger le contenu&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":1019,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[73,144,80,71],"class_list":["post-985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","tag-perfmon","tag-readtrace","tag-rml-utilities","tag-sqldiag"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Deuxi\u00e8me \u00e9pisode de la trilogie sur SQLDIAG et les outils avanc\u00e9s de diagnostic autour de SQL Server. Nous parlerons aujourd&#8217;hui du r\u00e9sultat de la trace lanc\u00e9e lors du rapport pr\u00e9c\u00e9dent et de son contenu. Nous verrons comment charger le contenu&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2010-05-10T16:28:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-04T08:32:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"989\" \/>\n\t<meta property=\"og:image:height\" content=\"703\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David Baffaleuf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Baffaleuf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\"},\"author\":{\"name\":\"David Baffaleuf\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\"},\"headline\":\"SQLDIAG (\u00e9pisode 2)\",\"datePublished\":\"2010-05-10T16:28:36+00:00\",\"dateModified\":\"2023-01-04T08:32:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\"},\"wordCount\":1215,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"perfmon\",\"readtrace\",\"RML Utilities\",\"sqldiag\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\",\"name\":\"SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2010-05-10T16:28:36+00:00\",\"dateModified\":\"2023-01-04T08:32:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQLDIAG (\u00e9pisode 2)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\",\"name\":\"David Baffaleuf\",\"sameAs\":[\"http:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/","og_locale":"fr_FR","og_type":"article","og_title":"SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG","og_description":"Deuxi\u00e8me \u00e9pisode de la trilogie sur SQLDIAG et les outils avanc\u00e9s de diagnostic autour de SQL Server. Nous parlerons aujourd&#8217;hui du r\u00e9sultat de la trace lanc\u00e9e lors du rapport pr\u00e9c\u00e9dent et de son contenu. Nous verrons comment charger le contenu&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2010-05-10T16:28:36+00:00","article_modified_time":"2023-01-04T08:32:48+00:00","og_image":[{"width":989,"height":703,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2010\/05\/RML2.jpg","type":"image\/jpeg"}],"author":"David Baffaleuf","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"David Baffaleuf","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/"},"author":{"name":"David Baffaleuf","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf"},"headline":"SQLDIAG (\u00e9pisode 2)","datePublished":"2010-05-10T16:28:36+00:00","dateModified":"2023-01-04T08:32:48+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/"},"wordCount":1215,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["perfmon","readtrace","RML Utilities","sqldiag"],"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/","url":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/","name":"SQLDIAG (\u00e9pisode 2) - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2010-05-10T16:28:36+00:00","dateModified":"2023-01-04T08:32:48+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/sqldiag-episode-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"SQLDIAG (\u00e9pisode 2)"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf","name":"David Baffaleuf","sameAs":["http:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=985"}],"version-history":[{"count":58,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/985\/revisions"}],"predecessor-version":[{"id":9595,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/985\/revisions\/9595"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/1019"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}