Conseils pour le choix de la taille de grille d'un index spatial
Les conseils fournis dans cette rubrique visent à améliorer les performances des requêtes spatiales lorsque vous devez calculer manuellement la taille de grille d'un index spatial dans Oracle et DB2.
La taille des cellules de grille affecte la taille de la table d'index spatial. La configuration de l'index spatial nécessite d'ajuster la taille des cellules – les tailles réduites impliquent un nombre supérieur de cellules par forme, nécessitant plus d'entrées dans la table d'index spatial.
Si vous utilisez des applications clientes tierces, les applications et les profils de données spatiales peuvent varier d'un système à un autre. Dans ces cas-là, vous pouvez être tenu de tester l'index spatial, en essayant différentes tailles de cellule ou configurations de niveau de grille.
- Evaluez le nombre de niveaux de grille nécessaires sans oublier que l'optimiseur de base de données parcourt la table d'index spatial une fois par niveau de grille. Souvent, un seul niveau de grille est la meilleure solution pour une classe d'entités, malgré l'idée de distribution égale des géométries sur plusieurs niveaux de grille, afin de minimiser le nombre d'entrées de l'index spatial.
- Utilisez un seul niveau de grille pour les classes d'entités purement de type point et envisagez des tailles de cellule importantes. Les requêtes spatiales traitent généralement les géométries de type point plus rapidement que d'autres types de géométrie.
- Surveillez l'index spatial. L'optimisation d'un index spatial est difficile si les données changent fréquemment. L'optimisation dépend de la structure des données spatiales. Evaluez l'index spatial régulièrement, au fur et à mesure des changements des données spatiales.
- Dimensionnez l'index spatial sur l'application. Faites correspondre les tailles de cellule de la grille d'index spatial à l'étendue de la fenêtre d'application. Ainsi, l'application risque de consulter des entrées exactes dans la table d'index spatial. Ceci permet de dimensionner correctement la table d'index spatial et réduit les besoins de traitement, car un nombre réduit d'identifiants d'entités candidates doit être évalué par rapport à la table d'entités.
- Pour des fenêtres d'application inconnues ou variables, commencez par définir un niveau de grille ayant une taille de cellule trois fois supérieure à la taille moyenne des étendues des entités. Interrogez la table métier pour obtenir la taille d'entité moyenne grâce à l'instruction SQL suivante :
SELECT (AVG(ST_MAXX.shape – ST_MINX.shape) + AVG(ST_MAXY.shape – ST_MINY.shape)) / 2 from <N>;
- Concevez la table spatiale en vous basant sur des catégories de données spatiales telles que le type, la taille de géométrie et la distribution. Parfois, une classe d'entités conçue avec soin à l'aide de ces catégories peut augmenter considérablement la performance des requêtes spatiales.
Si vous créez vos données avec ArcGIS Desktop, la valeur de grille d'index spatial est calculée pour vous. Dans la plupart des cas, il n'est pas nécessaire de modifier ces tailles de grille. Toutefois, si les grilles ne répondent pas à vos attentes, suivez les mêmes conseils pour choisir une taille de grille d'index spatial que pour les tables spatiales créées avec des clients tiers.
Pour plus d'informations sur la grille d'index du module DB2 Spatial Extender, reportez-vous au manuel IBM DB2 Spatial Extender and Geodetic Extender User's Guide and Reference.