Utilisation de SQL Server 2008 R2colonne de données XML dans SQL Server
Je voudrais créer une table avec les colonnes suivantes
[id] INT IDENTITY(1,1) NOT NULL,
[user_id] INT NOT NULL,
[date] DATE NOT NULL,
[timestamp] DATETIME NOT NULL,
[xml_data] XML NOT NULL
avec la clé primaire sur la colonne d'identité et un non groupés index sur user_id et la date qui couvre xml_data et timestamp.
Cependant, je remarque que je ne peux pas ajouter xml_data à l'instruction INCLUDE dans l'index. Visage triste, car cela va entraîner une recherche RID lorsqu'un utilisateur recherche sur user_id et la date.
Quelle est la meilleure façon de stocker les données XML qui seront interrogées?
Je figure mes choix sont
- bâton avec xml et ont des données bien formatées mais prendre la requête en demandant
- Utilisez un VARCHAR (MAX) avec avantages/inconvénients inconnus
- Utilisez un VARBINARY (MAX) avec avantages/inconvénients inconnus
note: Je doute que je serai en mesure de limiter la longueur de la chaîne à même quelque chose comme 8000.
Réponse très détaillée, merci beaucoup. Donc, fondamentalement, je vais devoir manger le coup de performance sur le SELECT? –
@Norla: ne "SELECT" pas la colonne XML si vous n'en avez pas besoin. En outre: comme il est stocké de manière optimisée - il sera en fait ** plus rapide ** que de stocker en tant que 'VARCHAR (MAX)' –