{"id":4902,"date":"2015-04-27T16:29:56","date_gmt":"2015-04-27T15:29:56","guid":{"rendered":"http:\/\/blog.capdata.fr\/?p=4902"},"modified":"2019-09-13T13:26:46","modified_gmt":"2019-09-13T12:26:46","slug":"les-attentes-dans-sql-server","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/","title":{"rendered":"Les attentes dans SQL Server"},"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%2F4902&#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%2F4902&#038;title=Les%20attentes%20dans%20SQL%20Server\" 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=Les%20attentes%20dans%20SQL%20Server&#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%2F4902\" 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>Voici une s\u00e9rie d&#8217;articles sur un sujet qui me semble important: La gestion des performances au travers des &#8220;attentes&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Que vous ayez assist\u00e9 \u00e0 l&#8217;une des pr\u00e9sentations de David Baffaleuf ou de moi-m\u00eame lors des journ\u00e9es SQL Server (\u00a0<a href=\"http:\/\/fr.slideshare.net\/DavidBAFFALEUF\/journes-sql-server-2012-attentes-et-performances\" target=\"_blank\" rel=\"noopener noreferrer\">JSS2012<\/a>,\u00a0<a href=\"http:\/\/blog.capdata.fr\/index.php\/video-de-la-session-jss-2013-reshootee-et-disponible\/\" target=\"_blank\" rel=\"noopener noreferrer\">JSS2013<\/a>,<a href=\"https:\/\/www.youtube.com\/watch?v=L-Wyybwb3wM\" target=\"_blank\" rel=\"noopener noreferrer\">JSS2014<\/a>-1 et <a href=\"https:\/\/www.youtube.com\/watch?v=6ywngaqLjsg\" target=\"_blank\" rel=\"noopener noreferrer\">JSS2014-2<\/a>\u00a0 ),<\/li>\n<li>que vous ayez entendu parler des &#8220;attentes&#8221; \u00a0dans la documentation officielle de SQL Server, dans un forum ou dans un des nombreux ouvrages traitant de ce sujet,<\/li>\n<li>ou que vous ayez simplement un jour lanc\u00e9 le Moniteur d&#8217;Activit\u00e9 de Management Studio,<\/li>\n<\/ul>\n<p>Vous avez compris que l&#8217;on peut identifier et r\u00e9soudre un grand nombre de probl\u00e8mes de performances en s&#8217;int\u00e9ressant aux attentes observ\u00e9es sur une instance de bases de donn\u00e9es.<\/p>\n<p>&nbsp;<\/p>\n<h2>Pourquoi s&#8217;int\u00e9resser aux attentes ?<\/h2>\n<p>&nbsp;<\/p>\n<h3>C\u00f4t\u00e9 requ\u00eate<\/h3>\n<p>Lorsqu&#8217;une requ\u00eate est ex\u00e9cut\u00e9e, on peut consid\u00e9rer qu&#8217;elle passe son temps \u00e0 attendre:<\/p>\n<ul>\n<li>Attendre que le code de la requ\u00eate soit envoy\u00e9 depuis l&#8217;application cliente jusqu&#8217;\u00e0 l&#8217;instance<\/li>\n<li>Attendre qu&#8217;une t\u00e2che soit associ\u00e9e \u00e0 la requ\u00eate<\/li>\n<li>Attendre que le plan d&#8217;ex\u00e9cution soit choisi<\/li>\n<li>Attendre que les pages de donn\u00e9es soient lues en m\u00e9moire ou sur disque<\/li>\n<li>Attendre que ces donn\u00e9es soient tri\u00e9es<\/li>\n<li>Attendre que les donn\u00e9es soient renvoy\u00e9es \u00e0 l&#8217;application cliente<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p>On pourrait consid\u00e9rer que la requ\u00eate, \u00a0lorsque la t\u00e2che associ\u00e9e consomme du CPU, est en attente de &#8220;fin de traitement CPU&#8221;. Mais il est d&#8217;usage de dire que le temps pass\u00e9 dans le CPU n&#8217;est pas du temps attendu.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>On peut donc dire (en excluant pour l&#8217;instant le cas particulier du parall\u00e9lisme )\u00a0que le temps d&#8217;ex\u00e9cution d&#8217;une requ\u00eate correspond \u00e0 la somme du temps pass\u00e9 dans le CPU et du temps pass\u00e9 sur chaque attente.<\/strong><\/p>\n<p>Donc en connaissant le temps pass\u00e9 sur chaque attente (on parle de &#8220;ventilation des postes d&#8217;attente&#8221;), il est possible de savoir o\u00f9 la requ\u00eate a pass\u00e9 plus de temps. Donc de savoir quoi optimiser .<\/p>\n<p>Quelques exemples pour une requ\u00eate dont le temps d&#8217;ex\u00e9cution (entre le moment o\u00f9 l&#8217;utilisateur clique sur &#8220;Ex\u00e9cuter&#8221; et celui o\u00f9 l&#8217;application cliente lui rend la main) est de \u00a010 secondes:<\/p>\n<ul>\n<li>6 secondes pass\u00e9es sur le transfert des informations entre l&#8217;application cliente et l&#8217;instance SQL Server, 1 seconde pass\u00e9e \u00e0 consommer du CPU, 1 seconde \u00e0 attendre sur des verrous, 2 secondes pass\u00e9es \u00e0 lire des donn\u00e9es sur disque.<\/li>\n<\/ul>\n<p>En cherchant \u00e0 \u00e9liminer les attentes sur les verrous, on ne pourra gagner qu&#8217;une seconde, soit 10% du temps total d&#8217;ex\u00e9cution. Par contre, en s&#8217;int\u00e9ressant la la communication entre l&#8217;application et l&#8217;instance, on peut esp\u00e9rer gagner jusqu&#8217;\u00e0 60% de ce temps d&#8217;ex\u00e9cution<\/p>\n<ul>\n<li>0.5 seconde pour la communication r\u00e9seau, 9 secondes \u00e0 lire des donn\u00e9es sur disque, 0.1 seconde \u00a0\u00e0 attendre sur des verrous, 0.3 seconde \u00e0 consommer du CPU, 0.1 seconde \u00e0 pour compiler le plan d&#8217;ex\u00e9cution.<\/li>\n<\/ul>\n<p>Il n&#8217;y a ici qu&#8217;en cherchant \u00e0 r\u00e9duire le temps pass\u00e9 \u00e0 lire les donn\u00e9es sur disque que l&#8217;on peut sensiblement r\u00e9duire le temps total d&#8217;ex\u00e9cution, et on peut esp\u00e9rer diviser par 10 cette dur\u00e9e ! Attention, on sait simplement que l&#8217;on attend &#8220;trop&#8221; sur la lecture des donn\u00e9es, pas si cette attente est due \u00e0 des disques trop lents ou \u00e0 des balayages d&#8217;objets trop volumineux. Il faudra n\u00e9cessairement pousser l&#8217;investigation pour savoir comment r\u00e9duire cette attente.<\/p>\n<ul>\n<li>8 secondes \u00e0 attendre sur des verrous, 2 secondes pour la somme de toutes les autres attentes.<\/li>\n<\/ul>\n<p>Sans surprise ici, c&#8217;est en cherchant \u00e0 r\u00e9duire la dur\u00e9e de la ou des demandes de verrous que l&#8217;on r\u00e9duira la temps total d&#8217;ex\u00e9cution de la requ\u00eate.<\/p>\n<p>&nbsp;<\/p>\n<h3>C\u00f4t\u00e9 instance<\/h3>\n<p>En regardant \u00e0 un instant T l&#8217;ensemble des t\u00e2ches qui s&#8217;ex\u00e9cutent sur l&#8217;instance, en regardant pour chaque t\u00e2che le poste d&#8217;attente, on peut savoir s&#8217;il y a une \u00e9ventuelle contention sur l&#8217;instance, ou plus globalement conna\u00eetre le profile d&#8217;activit\u00e9 \u00e0 cet instant.<\/p>\n<p>Si on observe par exemple 10 t\u00e2ches en attente de lib\u00e9ration d&#8217;un verrou pour 11 t\u00e2ches en tout, il s&#8217;agit clairement d&#8217;un probl\u00e8me de contention sur la concurrence d&#8217;acc\u00e8s<\/p>\n<p>Si on observe 10 t\u00e2ches en attente de lecture de donn\u00e9es sur disque sur 11 t\u00e2ches en tout, les disques ne sont a priori pas adapt\u00e9s \u00e0 soutenir la demande faite par SQL Server.<\/p>\n<p>&nbsp;<\/p>\n<p>Disposer de ce type d&#8217;informations est crucial lorsqu&#8217;il s&#8217;agit d&#8217;identifier la cause d&#8217;une saturation d&#8217;instance, d&#8217;un ralentissement g\u00e9n\u00e9ral d&#8217;une application. Il permet aussi de savoir s&#8217;il peut \u00eatre int\u00e9ressant par exemple d&#8217;ajouter de la m\u00e9moire ou des CPUs \u00e0 une instance SQL Server&#8230;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Mesurer les attentes<\/h2>\n<p>&nbsp;<\/p>\n<p>Le <a title=\"Activity Monitor\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh212951.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">Moniteur d&#8217;Activit\u00e9 de Management Studio<\/a> donne un aper\u00e7u de la r\u00e9partition des attentes \u00e0 l&#8217;instant T. Ces attentes sont class\u00e9es par cat\u00e9gorie pour faciliter l&#8217;identification de contentions.<\/p>\n<p>Les vues<a href=\"https:\/\/msdn.microsoft.com\/fr-fr\/library\/ms177648.aspx\"> sys.dm_exec_requests<\/a>\u00a0et <a href=\"https:\/\/msdn.microsoft.com\/fr-fr\/library\/ms188743.aspx\">sys.dm_os_waiting_tasks<\/a> donnent l&#8217;attente actuelle des requ\u00eates en cours d&#8217;ex\u00e9cution, le temps depuis laquelle chaque requ\u00eate attend , et \u00e9ventuellement la requ\u00eate bloquante lorsque l&#8217;attente concerne un verrou. En agr\u00e9geant les donn\u00e9es de ces vues par type d&#8217;attente, on peut conna\u00eetre l&#8217;activit\u00e9 globale de l&#8217;instance \u00e0 l&#8217;instant T<\/p>\n<p>La vue <a href=\"https:\/\/msdn.microsoft.com\/fr-fr\/library\/ms179984.aspx\">sys.dm_os_wait_stats<\/a> permet de conna\u00eetre la somme des attentes (temps total attendu et nombre de t\u00e2ches ayant attendu) sur l&#8217;instance, depuis son d\u00e9marrage ou depuis que les compteurs ont \u00e9t\u00e9 r\u00e9initialis\u00e9s (via l&#8217;ex\u00e9cution de\u00a0<em>dbcc sqlperf(&#8216;sys.dm_os_wait_stats&#8217; clear)<\/em>)<\/p>\n<p>&nbsp;<\/p>\n<p>Attention, toutes les attentes remont\u00e9es dans les vues ci-dessus ne correspondent pas \u00e0 des attentes subies lors d&#8217;ex\u00e9cution de requ\u00eates !<\/p>\n<p>Lors de consultation de ces vues, il convient de filtrer ces &#8220;fausses attentes&#8221;. Les filtres ci-dessous permettent de ne pas afficher la grande majorit\u00e9 de ces fausses attentes, en plus des types d&#8217;attentes qui n&#8217;ont jamais \u00e9t\u00e9 observ\u00e9s:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"sql\">select * from sys.dm_os_wait_stats\r\nWHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE',\r\n'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT',\r\n'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT',\r\n'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',\r\n'ONDEMAND_TASK_QUEUE', 'BROKER_EVENTHANDLER')\r\nand wait_type not like 'SLEEP%'\r\nand wait_time_ms&gt;0<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>\u00a0Comprendre et r\u00e9duire les attentes<\/h2>\n<p>Il existe plusieurs centaines d&#8217;attentes (<a title=\"sys.dm_os_wait_stats\" href=\"https:\/\/msdn.microsoft.com\/fr-fr\/library\/ms179984.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">plus de 700 pour SQL Server 2014<\/a>), les connaitre toutes rel\u00e8ve donc de l&#8217;impossible. Mais il est revanche possible de conna\u00eetre les grandes familles, de comprendre \u00e0 quels m\u00e9canismes de SQL Server elles correspondent, et donc de savoir comment les r\u00e9duire.<\/p>\n<p>C&#8217;est ce que je vais tenter de d\u00e9velopper dans les quelques articles \u00e0 venir.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/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%2F4902&#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%2F4902&#038;title=Les%20attentes%20dans%20SQL%20Server\" 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=Les%20attentes%20dans%20SQL%20Server&#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%2F4902\" 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>Voici une s\u00e9rie d&#8217;articles sur un sujet qui me semble important: La gestion des performances au travers des &#8220;attentes&#8221;. &nbsp; Que vous ayez assist\u00e9 \u00e0 l&#8217;une des pr\u00e9sentations de David Baffaleuf ou de moi-m\u00eame lors des journ\u00e9es SQL Server (\u00a0JSS2012,\u00a0JSS2013,JSS2014-1&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":14,"featured_media":7838,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[206,221],"class_list":["post-4902","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","tag-howto","tag-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Les attentes dans SQL Server - 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\/les-attentes-dans-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Les attentes dans SQL Server - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Voici une s\u00e9rie d&#8217;articles sur un sujet qui me semble important: La gestion des performances au travers des &#8220;attentes&#8221;. &nbsp; Que vous ayez assist\u00e9 \u00e0 l&#8217;une des pr\u00e9sentations de David Baffaleuf ou de moi-m\u00eame lors des journ\u00e9es SQL Server (\u00a0JSS2012,\u00a0JSS2013,JSS2014-1&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2015-04-27T15:29:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-13T12:26:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2015\/04\/waitinginline.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"612\" \/>\n\t<meta property=\"og:image:height\" content=\"408\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Benjamin VESAN\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin VESAN\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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\/les-attentes-dans-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\"},\"author\":{\"name\":\"Benjamin VESAN\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/ae56d1d3d5680d95ccc2c927e44bdc3e\"},\"headline\":\"Les attentes dans SQL Server\",\"datePublished\":\"2015-04-27T15:29:56+00:00\",\"dateModified\":\"2019-09-13T12:26:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\"},\"wordCount\":1054,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"howto\",\"performance\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\",\"name\":\"Les attentes dans SQL Server - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2015-04-27T15:29:56+00:00\",\"dateModified\":\"2019-09-13T12:26:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Les attentes dans SQL Server\"}]},{\"@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\/ae56d1d3d5680d95ccc2c927e44bdc3e\",\"name\":\"Benjamin VESAN\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/bvesan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Les attentes dans SQL Server - 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\/les-attentes-dans-sql-server\/","og_locale":"fr_FR","og_type":"article","og_title":"Les attentes dans SQL Server - Capdata TECH BLOG","og_description":"Voici une s\u00e9rie d&#8217;articles sur un sujet qui me semble important: La gestion des performances au travers des &#8220;attentes&#8221;. &nbsp; Que vous ayez assist\u00e9 \u00e0 l&#8217;une des pr\u00e9sentations de David Baffaleuf ou de moi-m\u00eame lors des journ\u00e9es SQL Server (\u00a0JSS2012,\u00a0JSS2013,JSS2014-1&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2015-04-27T15:29:56+00:00","article_modified_time":"2019-09-13T12:26:46+00:00","og_image":[{"width":612,"height":408,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2015\/04\/waitinginline.jpg","type":"image\/jpeg"}],"author":"Benjamin VESAN","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Benjamin VESAN","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/"},"author":{"name":"Benjamin VESAN","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/ae56d1d3d5680d95ccc2c927e44bdc3e"},"headline":"Les attentes dans SQL Server","datePublished":"2015-04-27T15:29:56+00:00","dateModified":"2019-09-13T12:26:46+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/"},"wordCount":1054,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["howto","performance"],"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/","url":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/","name":"Les attentes dans SQL Server - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2015-04-27T15:29:56+00:00","dateModified":"2019-09-13T12:26:46+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/les-attentes-dans-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Les attentes dans SQL Server"}]},{"@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\/ae56d1d3d5680d95ccc2c927e44bdc3e","name":"Benjamin VESAN","url":"https:\/\/blog.capdata.fr\/index.php\/author\/bvesan\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4902","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\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=4902"}],"version-history":[{"count":29,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4902\/revisions"}],"predecessor-version":[{"id":7839,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4902\/revisions\/7839"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/7838"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=4902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=4902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=4902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}