2017-08-30 6 views
0

Je rencontre des problèmes de performances à l'aide d'une colonne de type de données XML dans SQL Server 2016. Il semble que ma requête parcourt le xml à plusieurs reprises. Voici ma configuration:Problème de performances avec les colonnes de types de données SQL Server et XML

  • Créer une table avec une colonne int ID (PrimaryKey) et une colonne XML CREATE TABLE [dbo].[MYTABLE]([ID] [int] IDENTITY(1,1) NOT NULL,[XMLDATA] [xml] NULL,CONSTRAINT [PK_MYTABLE] PRIMARY KEY CLUSTERED ([ID] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  • Importer environ 3000 fichiers xml (~ de 200Kb) qui donnent quelque chose de similaire à ceci: <root> <item> <transaction> <prop1></prop1> <prop2></prop2> </transaction> <load> <loaditem> <loadprop1></loadprop1> <loadprop2> <loadsubprop1></loadsubprop1> </loadprop2> </loaditem> </load> </item> </root> où il peut y avoir 400 à 500 "loaditems".

  • I ajouté 2 index à l'aide this article

  • Je crée des vues pour récupérer le code XML sous forme de données tabulaires et je l'ai essayé à la fois le .query() et la méthode .nodes/.value.

La performance d'une requête simple sur un total de 3300 enregistrements est épouvantable; il faut 45 secondes pour interroger la partie transaction/prop1 et prop2 ...

+0

de quel type de requête parlez-vous? un select? un insert? – sab

Répondre

0

Il semblerait que mes requêtes aient été bien meilleures sans les index. Je les ai enlevés et au lieu de 45 secondes, il est en baisse de 2 secondes ...