Créer, modifier et supprimer des index spatiaux
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Base de données SQL dans Microsoft Fabric
Un index spatial peut effectuer plus efficacement certaines opérations sur une colonne du type de données geometry ou geography (une colonne spatiale). Plusieurs index spatiaux peuvent être spécifiés sur une colonne spatiale. Cela peut s'avérer utile par exemple pour indexer différents paramètres de pavage dans une même colonne.
Il existe plusieurs restrictions applicables à la création d'index spatiaux. Pour plus d'informations, consultez Restrictions sur les index spatiaux dans cette rubrique.
Remarque
Pour plus d’informations sur la relation entre les index spatiaux et les partitions et groupes de fichiers, consultez la section « Remarques » dans CREATE SPATIAL INDEX (Transact-SQL).
Création, modification et suppression d'index spatiaux
Pour créer un index spatial
Pour créer un index spatial à l'aide de Transact-SQL
CREATE SPATIAL INDEX (Transact-SQL)
Pour créer un index spatial à l'aide de la boîte de dialogue Nouvel index dans Management Studio
Pour créer un index spatial dans Management Studio
Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données SQL Server et développez-la.
Développez Bases de données, développez la base de données qui contient la table dotée de l'index spécifié, puis développez Tables.
Développez la table pour laquelle vous souhaitez créer l'index.
Cliquez avec le bouton droit sur Index et sélectionnez Nouvel index.
Dans le champ Nom de l'index , entrez un nom pour l'index.
Dans la liste déroulante Type d’index , sélectionnez Spatial.
Pour spécifier la colonne spatiale à indexer, cliquez sur Ajouter.
Dans la boîte de dialogue Sélectionner des colonnes à partir de <nom de la table>, sélectionnez une colonne de type geometry ou geography en cochant la case correspondante. Toutes les autres colonnes spatiales deviennent alors impossibles à modifier. Si vous souhaitez sélectionner une autre colonne spatiale, vous devez tout d'abord désactiver la colonne sélectionnée actuellement. Lorsque vous avez terminé, cliquez sur OK.
Vérifiez votre sélection de colonne dans la grille Colonnes clés d'index .
Dans le volet Sélectionner une page de la boîte de dialogue Propriétés de l'index , cliquez sur Spatial.
Dans la page Spatial , spécifiez les valeurs que vous souhaitez utiliser pour les propriétés spatiales de l'index.
Quand vous créez un index sur une colonne de type geometry, vous devez spécifier les coordonnées (Min. X,Min. Y) et (Max. X,Max. Y) du cadre englobant. Pour un index sur une colonne de type geography , les champs de cadre englobant deviennent en lecture seule après que vous avez spécifié le schéma de pavage Grille géographique , car le pavage de la grille de géographie n’utilise pas de cadre englobant.
Si vous le souhaitez, vous pouvez spécifier des valeurs autres que les valeurs par défaut pour le champ Cellules par objet et pour la densité de grille à tout niveau du schéma de pavage. Le nombre par défaut de cellules par objet est 16 pour SQL Server 2008 (10.0.x) ou 8 pour SQL Server 2012 (11.x) ou supérieur, et la densité de grille par défaut est Medium pour SQL Server 2008 (10.0.x).
Vous pouvez sélectionner GEOMETRY_AUTO_GRID ou GEOGRAPHY_AUTO_GRID pour le schéma de pavage dans SQL Server. Lorsque GEOMETRY_AUTO_GRID ou GEOGRAPHY_AUTO_GRID est sélectionné, les options de densité de la grille Niveau 1, Niveau 2, Niveau 3 et Niveau 4 sont désactivées.
Pour plus d'informations sur ces propriétés, consultez Index Properties F1 Help.
Cliquez sur OK.
Remarque
Pour créer un autre index spatial sur la même colonne spatiale ou sur une colonne spatiale différente, répétez les étapes précédentes.
Pour créer un index spatial à l'aide du Concepteur de tables dans Management Studio
Pour créer un index spatial dans le Concepteur de tables
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la table pour laquelle vous souhaitez créer un index spatial, puis cliquez sur Conception.
La table s'ouvre dans le Concepteur de tables.
Sélectionnez une colonne geometry ou geography pour l'index.
Dans le menu Concepteur de tables , cliquez sur Index spatial.
Dans la boîte de dialogue Index spatiaux , cliquez sur Ajouter.
Sélectionnez le nouvel index dans la liste Index spatial sélectionné et, dans la grille située à droite, définissez les propriétés de l'index spatial. Pour plus d’informations sur les propriétés, consultez Boîte de dialogue Index spatiaux (Visual Database Tools).
Pour modifier un index spatial
-
Important
Pour modifier des options spécifiques à un index spatial, telles que BOUNDING_BOX ou GRID, vous pouvez utiliser une instruction CREATE SPATIAL INDEX qui spécifie DROP_EXISTING = ON ou supprimer l'index spatial et en créer un nouveau. Pour obtenir un exemple, consultez CREATE SPATIAL INDEX (Transact-SQL).
Pour supprimer un index spatial
Pour supprimer un index spatial à l'aide de Transact-SQL
DROP INDEX (Transact-SQL)
Pour supprimer un index à l'aide de Management Studio
Suppression d'index
Pour supprimer un index spatial à l'aide du Concepteur de tables dans Management Studio
Pour supprimer un index spatial dans le Concepteur de tables
Dans l’Explorateur d’objets, cliquez avec le bouton droit sur la table contenant l’index spatial que vous souhaitez supprimer et cliquez sur Conception.
La table s'ouvre dans le Concepteur de tables.
Dans le menu Concepteur de tables , cliquez sur Index spatial.
La boîte de dialogue Index spatial s'ouvre.
Cliquez sur l'index que vous souhaitez supprimer dans la colonne Index spatial sélectionné .
Cliquez sur Supprimer.
Restrictions sur les index spatiaux
Un index spatial peut être créé uniquement sur une colonne de type geometry ou geography.
Restrictions sur les tables et les vues
Les index spatiaux peuvent être définis uniquement sur une table dotée d'une clé primaire. Le nombre maximal de colonnes clés primaires sur la table est de 15.
La taille maximale des enregistrements de clés d'index est de 895 octets. Les tailles supérieures génèrent une erreur.
Remarque
Les métadonnées de clé primaire ne peuvent pas être modifiées pendant qu'un index spatial est défini sur une table.
Des index spatiaux ne peuvent pas être spécifiés sur des vues indexées.
Restrictions sur plusieurs index spatiaux
Vous pouvez créer jusqu'à 249 index spatiaux sur les colonnes spatiales dans une table prise en charge. La création de plusieurs index spatiaux sur la même colonne spatiale peut être utile, par exemple pour indexer des paramètres de pavage différents dans une même colonne.
Vous pouvez créer un seul index spatial à la fois.
Index spatiaux et parallélisme de processus
Une construction d'index peut utiliser le parallélisme de processus disponible.
Restrictions de version
Les pavages spatiaux introduits dans SQL Server 2012 (11.x) ne peuvent pas être répliqués vers SQL Server 2008 R2 (10.50.x) ou SQL Server 2008 (10.0.x). Vous devez utiliser des pavages spatiaux SQL Server 2008 R2 (10.50.x) ou SQL Server 2008 (10.0.x) pour les index spatiaux lors de la compatibilité descendante avec les bases de données SQL Server 2008 R2 (10.50.x) ou SQL Server 2008 (10.0.x).