﻿{"id":263,"date":"2015-02-11T06:01:47","date_gmt":"2015-02-11T05:01:47","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?p=263"},"modified":"2015-02-11T06:04:06","modified_gmt":"2015-02-11T05:04:06","slug":"optimisation-du-travail-avec-les-geodatabases-arcgis-introduction-1-indexation","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/optimisation-du-travail-avec-les-geodatabases-arcgis-introduction-1-indexation\/","title":{"rendered":"Optimisation du travail avec les Geodatabases ArcGis- Introduction &#8211; 1-Indexation"},"content":{"rendered":"<p>La mod\u00e9lisation d&rsquo;une g\u00e9odatabase contribue \u00e0 produire un sch\u00e9ma clair et \u00e0 r\u00e9duire le travail de maintenance. C&rsquo;est une \u00e9tape n\u00e9cessaire afin d&rsquo;assurer une bonne conception, et qui contribue directement \u00e0 l&rsquo;optimisation de la g\u00e9odatabase. Le probl\u00e8me c&rsquo;est que, souvent, on n\u00e9glige cette \u00e9tape de conception du sch\u00e9ma. M\u00eame si on passe par cette \u00e9tape, de toutes mani\u00e8res la geodatabase va cro\u00eetre pendant son cycle de vie et sa performance aura tendance \u00e0 diminuer naturellement.<br \/>\nPlus vous avez d&rsquo;entit\u00e9s dans une geodatabase, plus de temps la g\u00e9odatabase prend pour ex\u00e9cuter une requ\u00eate. C&rsquo;est pourquoi, dans cette s\u00e9rie d&rsquo;articles, on d\u00e9crira les outils pour vous aider \u00e0 r\u00e9gler la g\u00e9odatabase pour travailler de mani\u00e8re optimale. Certains outils ne seront utilis\u00e9s qu&rsquo;au moment de la cr\u00e9ation de la g\u00e9odatabase, d&rsquo;autres vous devrez les ex\u00e9cuter fr\u00e9quemment.<br \/>\nCes articles vont couvrir trois th\u00e8mes. Premi\u00e8rement, nous allons en apprendre davantage sur l&rsquo;indexation des classes d&rsquo;entit\u00e9s et comment cela peut aider \u00e0 acc\u00e9l\u00e9rer l&rsquo;interrogation. Deuxi\u00e8mement, nous allons voir le concept de compression, o\u00f9 nous allons apprendre comment cela peut r\u00e9duire la taille de la g\u00e9odatabase. Enfin, nous allons voir comment compacter les geodatabases et aider \u00e0 ainsi \u00e0 acc\u00e9l\u00e9rer les requ\u00eates pour une g\u00e9odatabase fr\u00e9quemment \u00e9dit\u00e9e.<\/p>\n<p><strong>L&rsquo;indexation<\/strong> est une fonctionnalit\u00e9 qui permet d&rsquo;acc\u00e9l\u00e9rer la requ\u00eate de donn\u00e9es, selon un attribut ou une collection d&rsquo;attributs, dans une table de base de donn\u00e9es.<br \/>\n<strong>La compression<\/strong> est un processus par lequel les donn\u00e9es dupliqu\u00e9es dans des jeux de donn\u00e9es de g\u00e9odatabase sont simplifi\u00e9es afin de r\u00e9duire leur taille.<br \/>\n<strong>Le compactage<\/strong> est un processus par lequel une g\u00e9odatabase, souvent \u00e9dit\u00e9e, est nettoy\u00e9 des \u00e9l\u00e9ments inutilis\u00e9s et orphelins.<\/p>\n<h1>Indexation d&rsquo;une geodatabase<\/h1>\n<p>L&rsquo;indexation est le principe de base de l&rsquo;optimisation des bases de donn\u00e9es. C&rsquo;est un outil tr\u00e8s puissant et efficace qui peut aider \u00e0 acc\u00e9l\u00e9rer la recherche d&rsquo;enregistrements. Sans indexation, une table est balay\u00e9e enti\u00e8rement pour r\u00e9cup\u00e9rer un enregistrement particulier. Donc, si nous avons un ensemble de donn\u00e9es avec n enregistrements, le pire sc\u00e9nario est que l&rsquo;enregistrement que nous essayons de localiser soit le dernier enregistrement de cette table, et donc nous avons besoin de rechercher \u00e0 travers  les n enregistrements afin de l&rsquo;atteindre. Imaginez une classe d&rsquo;entit\u00e9s avec un million d&rsquo;entit\u00e9s, si le temps n\u00e9cessaire pour lire chaque entit\u00e9 est d&rsquo;une milliseconde, cela signifie que nous devrons attendre 17 minutes pour balayer l&rsquo;ensemble des donn\u00e9es.<br \/>\nBien s\u00fbr, le temps de r\u00e9ponse d\u00e9pend de la place de l&rsquo;enregistrement que vous cherchez. Si il est situ\u00e9 au d\u00e9but de la table, il faudra beaucoup moins de temps pour l&rsquo;atteindre.<br \/>\nL&rsquo;indexation est \u00e0 peu pr\u00e8s similaire \u00e0 la fa\u00e7on dont vous organisez vos fichiers par ordre alphab\u00e9tique. Quand vous cherchez un document, s&rsquo;il commence par la lettre D, vous ne cherchez que parmi les documents commen\u00e7ant par D. Pour activer l&rsquo;indexation, la g\u00e9odatabase cr\u00e9e une autre table pour l&rsquo;attribut \u00e0 indexer.<br \/>\nIndexation fonctionne de fa\u00e7on similaire avec presque n&rsquo;importe quel type de champ: texte, nombres, dates, et m\u00eame avec le type de donn\u00e9es spatiales comme la g\u00e9om\u00e9trie des entit\u00e9s. Les index cr\u00e9\u00e9s sur les colonnes \u00ab\u00a0shape\u00a0\u00bb sont appel\u00e9s index spatiaux, qui suivent le m\u00eame concept que les indices sur les attributs.<br \/>\nTous les deux r\u00e9duisent le domaine de recherche des requ\u00eates pour obtenir une plus grande performance.<\/p>\n<h2>Indexer un attribut<\/h2>\n<p>Supposons que vous avez commenc\u00e9 \u00e0 effectuer des requ\u00eates d&rsquo;attribut sur votre g\u00e9odatabase, quelles optimisations pouvez vous apporter pour une meilleure performance?. Nous allons commencer par l&rsquo;ajout d&rsquo;un index d&rsquo;attribut.La question est, sur lequel attribut doit_on cr\u00e9er un index? Habituellement, cette question doit se poser pendant l&rsquo;\u00e9tape de mod\u00e9lisation de la g\u00e9odatabase, o\u00f9 les index sont ajout\u00e9s dans le diagramme entit\u00e9-relation. Les index sont cr\u00e9\u00e9s sur les attributs qui sont fr\u00e9quemment interrog\u00e9s. Si vous avez saut\u00e9 cette \u00e9tape, vous pouvez les cr\u00e9er pendant l&rsquo;exploitation en routine de votre base de donn\u00e9es. Dans la g\u00e9odatabase Cadastre, le champ Nom du Propri\u00e9taire est un bon candidat pour cr\u00e9er un index si vous recherchez souvent par Nom-Pr\u00e9nom des propri\u00e9taires. Pour cr\u00e9er un index d&rsquo;attribut, proc\u00e9dez comme suit:<br \/>\n<strong>1. Ouvrez ArcCatalog.<br \/>\n2. Recherchez la g\u00e9odatabase dans la fen\u00eatre arborescence du catalogue.<br \/>\n3. Faites un clic droit sur la table contenant vos propri\u00e9taire, puis s\u00e9lectionnez Propri\u00e9t\u00e9s&#8230;<br \/>\n4. Dans la bo\u00eete de dialogue Propri\u00e9t\u00e9s de la classe d&rsquo;entit\u00e9, s\u00e9lectionnez l&rsquo;onglet Index.<br \/>\n5. La fen\u00eatre Index d&rsquo;attributs montre les index existants pour cette classe d&rsquo;entit\u00e9s.<\/strong><br \/>\n<a href=\"http:\/\/www.sigterritoires.fr\/?attachment_id=268\" rel=\"attachment wp-att-268\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"268\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/optimisation-du-travail-avec-les-geodatabases-arcgis-introduction-1-indexation\/index1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index1.png?fit=513%2C623&amp;ssl=1\" data-orig-size=\"513,623\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"index1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index1.png?fit=513%2C623&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index1.png?resize=513%2C623\" alt=\"\" title=\"index1\" width=\"513\" height=\"623\" class=\"aligncenter size-full wp-image-268\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index1.png?w=513&amp;ssl=1 513w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index1.png?resize=247%2C300&amp;ssl=1 247w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/a><br \/>\nComme vous pouvez le voir, il y a un indice de FDO_OBJECTID (la cl\u00e9 primaire), qui est un index tr\u00e8s important qui ne peut pas \u00eatre retir\u00e9. La g\u00e9odatabase utilise cet index pour identifier de fa\u00e7on unique chaque entit\u00e9. Lorsque vous cliquez sur FDO_OBJECTID, dans la section Champs, vous voyez le champ pour lequel cet index est cr\u00e9\u00e9, comme le montre la capture d&rsquo;\u00e9cran ci-dessus.<br \/>\n<strong>6. Cliquez sur Ajouter&#8230; pour ajouter un nouvel index sur attribut.<br \/>\n7. Dans la bo\u00eete de dialogue Ajouter un Index sur attributx, tapez un nom de votre choix pour identifier ce nouvel index.<br \/>\n8. Dans la liste de Champs disponibles, s\u00e9lectionnez le champ qui vous int\u00e9resse, dans cet exemple NOM_PRENOM, et cliquez sur la fl\u00e8che droite pour l&rsquo;ajouter \u00e0 la liste, comme vous pouvez le voir dans la capture d&rsquo;\u00e9cran ci-dessous:<\/strong><br \/>\n<a href=\"http:\/\/www.sigterritoires.fr\/?attachment_id=270\" rel=\"attachment wp-att-270\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"270\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/optimisation-du-travail-avec-les-geodatabases-arcgis-introduction-1-indexation\/index2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index2.png?fit=404%2C380&amp;ssl=1\" data-orig-size=\"404,380\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"index2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index2.png?fit=404%2C380&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index2.png?resize=404%2C380\" alt=\"\" title=\"index2\" width=\"404\" height=\"380\" class=\"aligncenter size-full wp-image-270\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index2.png?w=404&amp;ssl=1 404w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index2.png?resize=300%2C282&amp;ssl=1 300w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<p><strong>9. Cliquez sur OK, le nouvel index appara\u00eet sur la liste des index de la tablke.<br \/>\n10. Cliquez sur Appliquer et quittez la fen\u00eatre en cliquant sur OK<\/strong><\/p>\n<p>Maintenant, quand vous effectuerez une requ\u00eate sur l&rsquo;attribut Nom_pr\u00e9nom, ArcGis utilisera cet index pour acc\u00e9l\u00e9rer la requ\u00eate.<\/p>\n<p>La table utilis\u00e9e dans cet exemple comporte 23053 lignes.<br \/>\nOn a construit un petit mod\u00e8le de traitement avec Model Builder, comportant une requ\u00eate de s\u00e9lection du type nom_prenom like &lsquo;JEAN DUPONT*&rsquo;, correspondant au dernier propri\u00e9taire de la table.<br \/>\nLe mod\u00e8le a pris 1,27 secondes pour s&rsquo;ex\u00e9cuter sans index suppl\u00e9mentaire.<br \/>\nUne fois ajout\u00e9 l&rsquo;index sur le champ nom_pr\u00e9nom, le m\u00eame mod\u00e8le s&rsquo;est ex\u00e9cut\u00e9 en 0,76 secondes, soit un gain de 40% de temps de r\u00e9ponse.<\/p>\n<h2>Ajout d&rsquo;un index spatial<\/h2>\n<p>Lorsque vous cr\u00e9ez une classe d&rsquo;entit\u00e9s, un index spatial est automatiquement cr\u00e9\u00e9 et optimis\u00e9 pour cette classe d&rsquo;entit\u00e9s. A tout moment, vous pouvez supprimer et recr\u00e9er l&rsquo;index spatial en effectuant les \u00e9tapes suivantes:<br \/>\n1. Ouvrez ArcCatalog et acc\u00e9dez \u00e0 la g\u00e9odatabase .<br \/>\n2. Faites un clic droit sur la classe d&rsquo;entit\u00e9s concern\u00e9e et s\u00e9lectionnez Propri\u00e9t\u00e9s<br \/>\n3. Cliquez sur l&rsquo;onglet Index.<br \/>\n4. Dans la section index spatial, cliquez sur Supprimer pour supprimer l&rsquo;index spatial.<br \/>\n5. Cliquez sur Cr\u00e9er si vous souhaitez cr\u00e9er \u00e0 nouveau l&rsquo;index spatial.<br \/>\n6. Fermez ArcCatalog.<br \/>\nLa suppression et recr\u00e9ation de l&rsquo;index spatial est un bon exercice sur une g\u00e9odatabase qui est souvent modifi\u00e9e, car cela assure la coh\u00e9rence des requ\u00eates spatiales.<\/p>\n<h2>Optimisation des indexations<\/h2>\n<p>Bien que l&rsquo;indexation soit un excellent outil pour l&rsquo;optimisation, il peut \u00eatre contreproductif s&rsquo;il est mis en \u0153uvre de mani\u00e8re incorrecte. Lorsque vous indexez une colonne, la g\u00e9odatabase cr\u00e9e une structure cach\u00e9e suppl\u00e9mentaire qui doit \u00eatre g\u00e9r\u00e9e et actualis\u00e9e fr\u00e9quemment. Plus vous avez d\u2019index, plus de travail est n\u00e9cessaire lors des mises \u00e0 jour de la geodatabase. Des index suppl\u00e9mentaires peuvent ralentir les op\u00e9rations de mise \u00e0 jour telles que INSERT, UPDATE et DELETE, parce que la g\u00e9odatabase doit r\u00e9g\u00e9n\u00e9rer les index correspondants.<br \/>\n\u00c9vitez de cr\u00e9er des index sur des colonnes avec tr\u00e8s peu de valeurs distinctes, parce que souvent ils ne vous donneront pas d&rsquo;am\u00e9liorations de la performance. Il est bon de cr\u00e9er des index sur des colonnes avec des valeurs uniques ou presque uniques.  Vous pouvez calculer le pourcentage d&rsquo;am\u00e9lioration des performances d&rsquo;une indexation en utilisant la formule suivante:<br \/>\n<a href=\"http:\/\/www.sigterritoires.fr\/?attachment_id=275\" rel=\"attachment wp-att-275\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"275\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/optimisation-du-travail-avec-les-geodatabases-arcgis-introduction-1-indexation\/index3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index3.png?fit=245%2C115&amp;ssl=1\" data-orig-size=\"245,115\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"index3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index3.png?fit=245%2C115&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2015\/02\/index3.png?resize=245%2C115\" alt=\"\" title=\"index3\" width=\"245\" height=\"115\" class=\"aligncenter size-full wp-image-275\" \/><\/a><br \/>\nDans la formule pr\u00e9c\u00e9dente, <em>a<\/em> est l&rsquo;attribut d&rsquo;\u00eatre index\u00e9 et <em>ind(a)<\/em> est l&rsquo;indice d&rsquo;efficacit\u00e9 de l&rsquo;indexation; 100% \u00e9tant le maximum et 0% le plus faible. <em>d(a)<\/em> est le nombre de valeurs distinctes dans la colonne d&rsquo;attribut <em>a<\/em> et <em>n(a)<\/em> est le nombre de valeurs totales de <em>a<\/em>. Notez que si <em>a<\/em> est une cl\u00e9 primaire, <em>ind(a)<\/em> est de 100%.<br \/>\nCela explique aussi pourquoi les champs de type CAT\u00c9GORIE ont un faible score sur les performances d&rsquo;indexation avec cette formule.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La mod\u00e9lisation d&rsquo;une g\u00e9odatabase contribue \u00e0 produire un sch\u00e9ma clair et \u00e0 r\u00e9duire le travail de maintenance. C&rsquo;est une \u00e9tape n\u00e9cessaire afin d&rsquo;assurer une bonne conception, et qui contribue directement \u00e0 l&rsquo;optimisation de la g\u00e9odatabase. Le&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,26],"tags":[47,44,46,45],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-logiciels_editeur","category-outils-et-methodes","tag-attribut","tag-geodatabase","tag-index","tag-indexation"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-4f","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=263"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}