{"id":1943,"date":"2011-03-02T17:52:57","date_gmt":"2011-03-02T16:52:57","guid":{"rendered":"http:\/\/blog.capdata.fr\/?p=1943"},"modified":"2019-09-13T14:46:34","modified_gmt":"2019-09-13T13:46:34","slug":"alter-table-rebuild","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/","title":{"rendered":"Alter table rebuild"},"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%2F1943&#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%2F1943&#038;title=Alter%20table%20rebuild\" 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=Alter%20table%20rebuild&#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%2F1943\" 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>Apparue \u00a0avec SQL Server 2008, cette nouvelle option permet de reconstruire une table qui n&#8217;a pas d&#8217;index cluster. \u00a0Une table de\u00a0ce type est appel\u00e9 un heap.  Avant cette version, la solution\u00a0souvent utilis\u00e9e pour reconstruire une table heap consiste \u00e0 cr\u00e9er artificiellement un index cluster sur une ou plusieurs\u00a0colonnes\u00a0de la table puis de supprimer le nouvel index. Le choix des colonnes pour cr\u00e9er l&#8217;index cluster est parfois complexe, car il d\u00e9termine l&#8217;ordre de stockage\u00a0des lignes dans les pages de la table.  La commande Alter table rebuild est int\u00e9ressante\u00a0\u00e0 plus d&#8217;un titre :<\/p>\n<ul>\n<li>Plus de question \u00e0 se poser sur le choix des colonnes pour reconstruire la table<\/li>\n<li>Elle est simple \u00e0 utiliser : <span style=\"color: #0000ff\">Alter table TABLE1 rebuild<\/span><\/li>\n<li><span style=\"font-size: 12px;line-height: 18px\"><span style=\"color: #3366ff\"> <\/span><\/span>Elle permet de diminuer le nombre de &#8220;forwarding record&#8221; dans les pages de donn\u00e9es.<\/li>\n<li>Lorsque l&#8217;on met \u00e0 jour les donn\u00e9es d&#8217;une ligne et qu&#8217;il ne reste pas\u00a0suffisamment\u00a0d&#8217;espace libre dans la page, SQL Server enregistre une information &#8220;forwarding record&#8221; qui contient un pointeur vers l&#8217;adresse de la page qui contient la suite de la ligne.\u00a0Ce ph\u00e9nom\u00e8ne est p\u00e9nalisant pour les performances, car il impose des d\u00e9placements\u00a0co\u00fbteux\u00a0entre les pages lors des lectures de lignes.<\/li>\n<li>Elle permet de r\u00e9duire le nombre de pages utilis\u00e9es par une table apr\u00e8s une r\u00e9duction\u00a0importante\u00a0des donn\u00e9es des lignes.<\/li>\n<li>Les indexes non cluster sont reconstruits en m\u00eame temps que la table<\/li>\n<li>Si on est en version Enterprise, il est possible de reconstruire la table ONLINE\u00a0, c&#8217;est \u00e0 dire en optimisant le verrouillage de la table pour p\u00e9naliser le moins possible les acc\u00e8s \u00e0 celle_ci lors de la reconstruction.<\/li>\n<p>Voici 2 exemples d&#8217;utilisation<\/ul>\n<p><span style=\"font-family: Consolas, Monaco, 'Courier New', Courier, monospace;font-size: 12px;line-height: 18px\">&#8212; #######################################################################<br \/>\n<\/span><span style=\"font-family: Consolas, Monaco, 'Courier New', Courier, monospace;font-size: 12px;line-height: 18px\">&#8212; # Demo1 : Reconstruire un HEAP pour r\u00e9duire les &#8220;forwarding record&#8221; <\/span><span style=\"font-family: Consolas, Monaco, 'Courier New', Courier, monospace;font-size: 12px;line-height: 18px\">&#8212;<br \/>\n&#8212; #######################################################################<\/span><\/p>\n<pre><span style=\"color: #008000\">-- creation base de tests<\/span>\r\ndrop database B1\r\nCreate database B1\r\nalter database B1 set recovery simple\r\nuse B1\r\ngo\r\n\r\n<span style=\"color: #008000\">-- creation table HEAP exemple<\/span>\r\ncreate table TABLE1(a numeric identity, b varchar(4000), c varchar(4000))\r\ngo\r\n\r\n<span style=\"color: #008000\">-- ajoute 1000 lignes dans la table<\/span>\r\ninsert into TABLE1 values ('b','c')\r\ngo 1000\r\n\r\n<span style=\"color: #008000\">-- Inspection de son plan d'allocation\r\n<\/span>dbcc traceon (3604)dbcc ind('B1', 'TABLE1',-1)\r\n<span style=\"color: #008000\">PageFID PagePID \u00a0 \u00a0 IAMFID IAMPID \u00a0 \u00a0 \u00a0ObjectID \u00a0 \u00a0IndexID \u00a0 \u00a0 PartitionNumber PartitionID \u00a0 \u00a0 \u00a0 \u00a0\r\n------- ----------- ------ ----------- ----------- ----------- --------------- --------------------\r\n1 \u00a0 \u00a0 \u00a0 77 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0NULL \u00a0 NULL \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 55 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 78 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 79 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 80 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0 ...\r\n(5 row(s) affected)\r\n<\/span>=&gt; 5 pages (1 IAM et 4 Data)<\/pre>\n<pre><span style=\"color: #008000\">-- Mise \u00e0 jour de la table pour provoquer des d\u00e9bordements de lignes :<\/span>\r\nupdate TABLE1 set b=(replicate('b',1000)), c=(replicate('c',1000))\r\n\r\n<span style=\"color: #008000\">-- Nouveau plan d'allocation\r\n<span style=\"color: #000000\">dbcc ind('B1', 'TABLE1',-1)<\/span><\/span><\/pre>\n<pre><span style=\"color: #008000\">PageFID PagePID \u00a0 \u00a0 IAMFID IAMPID \u00a0 \u00a0 \u00a0ObjectID \u00a0 \u00a0IndexID \u00a0 \u00a0 PartitionNumber PartitionID \u00a0 \u00a0 \u00a0 \u00a0\r\n------- ----------- ------ ----------- ----------- ----------- --------------- -------------------\r\n1 \u00a0 \u00a0 \u00a0 77 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0NULL \u00a0 NULL \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 55 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 78 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 79 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 80 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 89 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 90 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 93 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 94 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 176 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 177 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 178 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a077 \u00a0 \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038779904 \u00a0...\r\n...\r\n--(336 row(s) affected)\r\n<\/span>--=&gt; 336 pages (1 page IAM + 335 pages de donnees)<\/pre>\n<pre><span style=\"color: #008000\">-- Affiche fragmentation\r\n<\/span>select object_name(F.object_id) Object, index_type_desc, page_count, record_count, forwarded_record_count, avg_fragmentation_in_percent from sys.indexes I\r\ncross apply sys.dm_db_index_physical_stats(db_id(),object_id('TABLE1'), -1,NULL,'DETAILED') F where I.object_id = object_id('TABLE1')<\/pre>\n<pre><span style=\"color: #008000\">Object \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 index_type_desc \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0page_count \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 record_count \u00a0 \u00a0 \u00a0 \u00a0 forwarded_record_count avg_fragmentation_in_percent\r\n------------------------------ ------------------------------ -------------------- -------------------- ---------------------- ----------------------------\r\nTABLE1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HEAP \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 335 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01993 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 993 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a04,44444444444444\r\n=&gt; 335 pages\r\n<\/span>=&gt; 1993 records pour 1000 lignes\r\n=&gt; 993 forwarded_record_count - 993 lignes sur 1000 contiennent un pointeur vers une autre page qui contient la suite de la page, c'est pas terrible\r\n=&gt; fragmentation : 4.4 %\r\n\r\n<span style=\"color: #008000\">-- Affiche le contenu de la page 78<\/span>\r\ndbcc page('B1', 1, 78, 3)\r\n<span style=\"color: #008000\">Slot 0 Offset 0x258 Length 9\r\nRecord Type = FORWARDING_STUB \u00a0 \u00a0 \u00a0 \u00a0Record Attributes = \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Record Size = 9\r\nMemory Dump @0x46E6C258\r\n00000000: \u00a0 040d0100 00010001 00\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020\u2020.........\r\nForwarding to \u00a0= \u00a0file 1 page 269 slot 1\r\nSlot 1 Offset 0x261 Length 9\r\n<\/span>=&gt; informations pour le row forwarding\r\n\r\n<span style=\"color: #008000\">-- reconstruit la table TABLE1<\/span>\r\nalter table TABLE1 rebuild\r\n\r\n-- Nouveau plan d'allocation\r\ndbcc ind('B1', 'TABLE1',-1)\r\n<span style=\"color: #008000\">PageFID PagePID \u00a0 \u00a0 IAMFID IAMPID \u00a0 \u00a0 \u00a0ObjectID \u00a0 \u00a0IndexID \u00a0 \u00a0 PartitionNumber PartitionID \u00a0 \u00a0 \u00a0 \u00a0 \u00a0iam_chain_type \u00a0 \u00a0 \u00a0\r\n------- ----------- ------ ----------- ----------- ----------- --------------- -------------------- --------------------\r\n1 \u00a0 \u00a0 \u00a0 110 \u00a0 \u00a0 \u00a0 \u00a0 NULL \u00a0 NULL \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038845440 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 109 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0110 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038845440 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 504 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0110 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038845440 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 505 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0110 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038845440 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n...\r\n(252 row(s) affected)<\/span>\r\n=&gt; la table a \u00e9t\u00e9 reconstruite a un nouvel emplacement, elle utilise 252 pages au lieu de 335<\/pre>\n<pre><span style=\"color: #008000\">-- Affiche fragmentation\r\n<\/span>select object_name(F.object_id) Object, index_type_desc, page_count, record_count, forwarded_record_count, avg_fragmentation_in_percent from sys.indexes I\r\ncross apply sys.dm_db_index_physical_stats(db_id(),object_id('TABLE1'), -1,NULL,'DETAILED') F where I.object_id = object_id('TABLE1')\r\n\r\n<span style=\"color: #008000\">Object \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 index_type_desc \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0page_count \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 record_count \u00a0 \u00a0 \u00a0 \u00a0 forwarded_record_count avg_fragmentation_in_percent\r\n------------------------------ ------------------------------ -------------------- -------------------- ---------------------- ----------------------------\r\nTABLE1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HEAP \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 251 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01000 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a03,03030303030303\r\n<\/span>=&gt; 3 lignes par page, le niveau de fragmentation a l\u00e9g\u00e8rement baiss\u00e9\r\n<strong>=&gt; et surtout il n'y a plus de forwarded record<\/strong>\r\n\r\n#########################################\r\n-- Demo2 : On continue l'exemple pr\u00e9c\u00e9dent, on va Reconstruire la table pour optimiser le nombre de pages apr\u00e8s une R\u00e9duction des donn\u00e9es dans les lignes:\r\n#########################################<\/pre>\n<pre><span style=\"color: #008000\">-- reduction des donnees dans les lignes\r\n<\/span>update TABLE1 set b='b', c='c'\r\n<span style=\"color: #008000\">(1000 row(s) affected)\r\n<\/span><\/pre>\n<pre><span style=\"color: #008000\">-- Affiche fragmentation\r\n<\/span>select object_name(F.object_id) Object, avg_page_space_used_in_percent, index_type_desc, page_count, record_count, forwarded_record_count, avg_fragmentation_in_percent from sys.indexes I\r\ncross apply sys.dm_db_index_physical_stats(db_id(),object_id('TABLE1'), -1,NULL,'DETAILED') F where I.object_id = object_id('TABLE1')\r\n\r\n<div><span style=\"color: #008000\">\r\nObject \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 avg_page_space_used_in_percent index_type_desc \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0page_count \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 record_count \u00a0 \u00a0 \u00a0 \u00a0 forwarded_record_count avg_fragmentation_in_percent<\/span><\/div>\r\n\r\n\r\n<div><span style=\"color: #008000\">------------------------------ ------------------------------ ------------------------------ -------------------- -------------------- ---------------------- ----------------------------\r\n<\/span><span style=\"color: #008000\">TABLE1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1,25517667407957 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HEAP \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 251 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01000 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a03,03030303030303<\/span><\/div>\r\n\r\n\r\n<div>=&gt; avg_page_space_used_in_percent : 1,25% d'espace utilise par page c'est faible !<\/div>\r\n\r\n\r\n<div><span style=\"color: #008000\">-- reconstruction de la table<\/span><\/div>\r\n\r\n\r\n<div>alter table TABLE1 rebuild<\/div>\r\n\r\n<\/pre>\n<pre><span style=\"color: #008000\">-- plan d'allocation<\/span>\r\ndbcc ind('B1', 'TABLE1',-1)\r\n<span style=\"color: #008000\">PageFID PagePID \u00a0 \u00a0 IAMFID IAMPID \u00a0 \u00a0 \u00a0ObjectID \u00a0 \u00a0IndexID \u00a0 \u00a0 PartitionNumber PartitionID \u00a0 \u00a0 \u00a0 \u00a0 \u00a0iam_chain_type \u00a0 \u00a0 \u00a0\r\n------- ----------- ------ ----------- ----------- ----------- --------------- -------------------- --------------------\r\n1 \u00a0 \u00a0 \u00a0 121 \u00a0 \u00a0 \u00a0 \u00a0 NULL \u00a0 NULL \u00a0 \u00a0 \u00a0 \u00a02105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 120 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0121 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 400 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0121 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 401 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0121 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 402 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0121 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n1 \u00a0 \u00a0 \u00a0 403 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0121 \u00a0 \u00a0 \u00a0 \u00a0 2105058535 \u00a00 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 72057594038976512 \u00a0 \u00a0In-row data \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n(6 row(s) affected)\r\n<span style=\"color: #000000\">=&gt; A nouveau 6 pages<\/span><\/span><\/pre>\n<pre><span style=\"color: #008000\">Object \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 avg_page_space_used_in_percent index_type_desc \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0page_count \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 record_count \u00a0 \u00a0 \u00a0 \u00a0 forwarded_record_count avg_fragmentation_in_percent\r\n------------------------------ ------------------------------ ------------------------------ -------------------- -------------------- ---------------------- ----------------------------\r\nTABLE1 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 64,225352112676 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0HEAP \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 5 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a01000 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a050\r\n<\/span>=&gt; avg_page_space_used_in_percent : 64,22 % c'est mieux !\r\nfragmentation 50% : pas genant pour une table de cette taille (- de 8 pages)<\/pre>\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%2F1943&#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%2F1943&#038;title=Alter%20table%20rebuild\" 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=Alter%20table%20rebuild&#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%2F1943\" 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>Apparue \u00a0avec SQL Server 2008, cette nouvelle option permet de reconstruire une table qui n&#8217;a pas d&#8217;index cluster. \u00a0Une table de\u00a0ce type est appel\u00e9 un heap. Avant cette version, la solution\u00a0souvent utilis\u00e9e pour reconstruire une table heap consiste \u00e0 cr\u00e9er&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":14,"featured_media":7927,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[115],"class_list":["post-1943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","tag-dbcc-ind"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Alter table rebuild - 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\/alter-table-rebuild\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alter table rebuild - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Apparue \u00a0avec SQL Server 2008, cette nouvelle option permet de reconstruire une table qui n&#8217;a pas d&#8217;index cluster. \u00a0Une table de\u00a0ce type est appel\u00e9 un heap. Avant cette version, la solution\u00a0souvent utilis\u00e9e pour reconstruire une table heap consiste \u00e0 cr\u00e9er&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2011-03-02T16:52:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-13T13:46:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2011\/03\/t\u00e9l\u00e9chargement.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"275\" \/>\n\t<meta property=\"og:image:height\" content=\"183\" \/>\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=\"5 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\/alter-table-rebuild\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\"},\"author\":{\"name\":\"Benjamin VESAN\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/ae56d1d3d5680d95ccc2c927e44bdc3e\"},\"headline\":\"Alter table rebuild\",\"datePublished\":\"2011-03-02T16:52:57+00:00\",\"dateModified\":\"2019-09-13T13:46:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\"},\"wordCount\":300,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"dbcc ind\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\",\"name\":\"Alter table rebuild - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2011-03-02T16:52:57+00:00\",\"dateModified\":\"2019-09-13T13:46:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Alter table rebuild\"}]},{\"@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":"Alter table rebuild - 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\/alter-table-rebuild\/","og_locale":"fr_FR","og_type":"article","og_title":"Alter table rebuild - Capdata TECH BLOG","og_description":"Apparue \u00a0avec SQL Server 2008, cette nouvelle option permet de reconstruire une table qui n&#8217;a pas d&#8217;index cluster. \u00a0Une table de\u00a0ce type est appel\u00e9 un heap. Avant cette version, la solution\u00a0souvent utilis\u00e9e pour reconstruire une table heap consiste \u00e0 cr\u00e9er&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2011-03-02T16:52:57+00:00","article_modified_time":"2019-09-13T13:46:34+00:00","og_image":[{"width":275,"height":183,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2011\/03\/t\u00e9l\u00e9chargement.jpg","type":"image\/jpeg"}],"author":"Benjamin VESAN","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Benjamin VESAN","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/"},"author":{"name":"Benjamin VESAN","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/ae56d1d3d5680d95ccc2c927e44bdc3e"},"headline":"Alter table rebuild","datePublished":"2011-03-02T16:52:57+00:00","dateModified":"2019-09-13T13:46:34+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/"},"wordCount":300,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["dbcc ind"],"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/","url":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/","name":"Alter table rebuild - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2011-03-02T16:52:57+00:00","dateModified":"2019-09-13T13:46:34+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/alter-table-rebuild\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Alter table rebuild"}]},{"@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\/1943","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=1943"}],"version-history":[{"count":41,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/1943\/revisions"}],"predecessor-version":[{"id":7928,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/1943\/revisions\/7928"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/7927"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}