SELECT XML-Felder mit der besten performance im SQL-server

Was ist eine gute Lösung für die beste performance von SELECTing XML-Felder? Cosider eine Tabelle mit 100000 datasatz.Wenn ich alle Tabelleninhalte auswählen und eine Tabellenvariable erstellen und dann einen Index erstellen und dann Werte berechnen? oder erstellen Sie mehrere Index auf meinem XML-Feld und berechnen Sie dann Werte?

Wenn jemand eine bessere Lösung hat, bitte sagen Sie.

Vielen Dank

Wenn du nur bestimmte Einzelwerte aus deinem XML extrahieren musst, kannst du diesen Ansatz auch untersuchen:

  • definieren Sie eine gespeicherte function, die Ihr XML als Eingabeparameter übernimmt, und extrahiert, was Sie brauchen, um daraus zu extrahieren, und gibt ein INT oder ein VARCHAR oder etwas zurück
  • definieren Sie eine berechnete, persistierte Spalte auf Ihrer Basistabelle (wo Ihr XML gespeichert ist), die diese function aufruft

Sobald Sie eine berechnete, beharrte Spalte haben, können Sie diese Spalte ganz einfach indizieren.

Leider funktioniert das nur, wenn du eine einzelne Information aus deiner XML-Spalte extrahieren musst – es funktioniert nicht, wenn du eine ganze list von Werten aus dem XML extrahieren musst

Wenn Sie listn von Informationen extrahieren müssen, dann wäre Ihre einzige echte Option XML-Indizes. In unserer Erfahrung, obwohl – der Overhead (in Bezug auf memoryplatz) ist extrem hoch – eine database, die wir von etwa 2 GB auf über 10 GB gegangen waren, als wir einen einzigen XML-Index hinzugefügt haben ……. es ist eine Option und Sie könnten es versuchen – aber bewusst sein, die potenziellen Nachteile auch.