2009-05-22 10 views

Répondre

3

Je ne sais pas exactement quelles sont vos exigences, et combien de documents et de tailles nous parlons ici. SQL Server 2005 vous permet de spécifier des schémas XML afin que vous puissiez certainement obtenir une validation dans l'équation, ce qui est certainement bénéfique pour SQL Server 2005. En ce qui concerne l'indexation XML, vous pouvez indexer trois stratégies différentes une fois que vous avez créé un index XML primaire de base.

  • le premier type d'index plus pour optimiser le XPath à un noeud XML unique lorsque vous faites beaucoup de requêtes basées sur XPath pour les noeuds (CREATE XML INDEX ..... FOR PATH)
  • le second type d'index plus pour optimiser l'accès aux valeurs dans votre XML noeuds, lorsque vous effectuez une recherche plus fondé sur des valeurs dans le document XML (CREATE XML INDEX ..... FOR VALUE)
  • le troisième est en quelque sorte un hybride des deux ci-dessus (que je jamais tout à fait moi-même groked, pour être honnête, CREATE XML INDEX ..... FOR PROPERTY)

Les index XML fonctionnait assez bien dans nos échantillons, mais le principal inconvénient dans notre cas était la taille des index sur le disque. Notre base de données de 1,3 Go est passée à plus de 11 Go simplement en ajoutant un XML PRIMARY et un index XML FOR PATH à environ 45 000 entrées avec un champ XML. En raison de contraintes de disque, nous avons fini par avoir à supprimer ces indices :-(

Ce n'est vraiment pas surprenant étant donné que l'index XML sera construit avec des entrées pour chaque nœud XML, attribut et ainsi de suite - Ce que nous avons fait à la fin est de créer un certain nombre de fonctions stockées qui atteignent le XML à partir de notre table Entry, et nous extrayons les morceaux dont nous avons le plus souvent besoin. maintenant stockés sur la table Entry calculé, a persisté propriétés. Ceci est aussi rapide que les champs « appropriés » sur la table Entry, il est toujours à jour et se règlent automatiquement lorsque de nouvelles données sont insérées, et nous avons besoin presque jamais vraiment utiliser une significan t Requêtes XQuery plus. Ce que je peux dire par expérience personnelle est que le support XML dans SQL Server 2005 est vraiment très profond et bien pensé, à mon avis. Donc dans l'ensemble, je dirais - allez-y essayer! Vous ne serez pas vraiment en mesure de dire si cela fonctionne et échelles assez bien dans votre cas spécifique jusqu'à ce que vous l'avez essayé.

Marc

0

Je ne l'ai pas essayé, mais XML me semble un peu trop bavard pour. Je me dis que je peux générer du XML à partir de mes données plus tard, pourquoi s'inquiéter de le stocker en XML.

+0

J'ai des documents qui sont en XML et ce serait bien de tirer parti de cette structure et de les interroger. Beaucoup plus simple que l'analyse syntaxique du fichier xml pour extraire les éléments d'intérêt dans les tableaux. –

+0

@Aaron Fischer, il y aura de la douleur: soit en les tirant à part pour les stocker facilement, soit en les stockant facilement, mais en les démontant douloureusement pour les interroger. vous choisissez! J'aime le faire une fois, en les insérant, pas toujours pour les interroger. mais encore une fois, je ne me suis pas vraiment fâché avec eux pour vraiment comprendre l'impact de leur performance par rapport aux structures de table traditionnelles. –

Questions connexes