{"id":1095,"date":"2014-08-23T23:03:24","date_gmt":"2014-08-23T21:03:24","guid":{"rendered":"http:\/\/www.sqlserver.fr\/blog\/?p=1095"},"modified":"2020-09-01T10:06:58","modified_gmt":"2020-09-01T08:06:58","slug":"reconstruction-de-tous-les-index-dune-base","status":"publish","type":"post","link":"https:\/\/www.sqlserver.fr\/blog\/reconstruction-de-tous-les-index-dune-base\/","title":{"rendered":"Reconstruction de tous les index d&rsquo;une base"},"content":{"rendered":"<p>En environnement de d\u00e9veloppement (en esp\u00e9rant que vous ne le faites pas en production &#8230;), il arrive assez souvent de lancer des compactages (SHRINK) de bases de donn\u00e9es. Mais ce type d&rsquo;action a tendance \u00e0 fragmenter tous les index, chose qu&rsquo;il convient de r\u00e9parer rapidement si l&rsquo;on souhaite garder des performances acceptables.<\/p>\n<p>Or il n&rsquo;existe pas d&rsquo;instruction Transact-SQL ou de commande (menu) sous SSMS permettant de reconstruire rapidement tous les index d&rsquo;une base.<!--more--> Voici donc un script r\u00e9alisant cela (avec accessoirement mise \u00e0 jour compl\u00e8te des statistiques en fin de processus) :<\/p>\n<pre class=\"brush: sql; gutter: false; first-line: 1\">declare @requete nvarchar(max)=N''\r\n\r\nselect @requete+='ALTER INDEX ALL ON ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ' REBUILD;'\r\nfrom sys.tables t\r\n\tjoin sys.schemas s on s.schema_id=t.schema_id\r\nwhere t.is_memory_optimized=0\r\n\r\nexec sp_executesql @requete\r\n\r\nexec sp_updatestats<\/pre>\n<p>Un oeil aguerri pourra constater que ce filtre exclut\u00a0volontairement les tables \u00ab\u00a0In-Memory\u00a0\u00bb de SQL Server 2014, \u00e9tant donn\u00e9 qu&rsquo;il n&rsquo;est pas utile de d\u00e9fragmenter ce type de tables.<\/p>\n<p>Vite r\u00e9alis\u00e9, mais bien utile lorsque l&rsquo;on n&rsquo;a pas la possibilit\u00e9 de passer par un plan de maintenance ou lorsqu&rsquo;il n&rsquo;est pas n\u00e9cessaire de chercher \u00e0 s&rsquo;appuyer sur les <a title=\"D\u00e9fragmentation conditionnelle des index\" href=\"https:\/\/www.sqlserver.fr\/blog\/defragmentation-conditionnelle-des-index\/\">taux de fragmentation comme dans un script standard de maintenance<\/a> &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En environnement de d\u00e9veloppement (en esp\u00e9rant que vous ne le faites pas en production &#8230;), il arrive assez souvent de lancer des compactages (SHRINK) de bases de donn\u00e9es. Mais ce type d&rsquo;action a tendance \u00e0 fragmenter tous les index, chose &hellip; <a href=\"https:\/\/www.sqlserver.fr\/blog\/reconstruction-de-tous-les-index-dune-base\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1095","post","type-post","status-publish","format-standard","hentry","category-outils"],"_links":{"self":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/1095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/comments?post=1095"}],"version-history":[{"count":6,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/1095\/revisions"}],"predecessor-version":[{"id":1774,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/1095\/revisions\/1774"}],"wp:attachment":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/media?parent=1095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/categories?post=1095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/tags?post=1095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}