Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Microsoft SQL Server 2005/2008:Datentyp XML vs. Text/Varchar

Wenn Sie XML in einer XML-Spalte speichern, werden die Daten nicht als einfacher Text gespeichert, wie im Fall von nvarchar, sie werden in einer Art geparstem Datenbaum gespeichert, der wiederum kleiner als die nicht geparste XML-Version ist. Dies verringert nicht nur die Datenbankgröße, sondern bietet Ihnen weitere Vorteile, wie Validierung, einfache Manipulation usw. (auch wenn Sie keines davon verwenden, sind sie dennoch für die zukünftige Verwendung vorhanden).

Andererseits muss der Server die Daten beim Einfügen parsen, was wahrscheinlich Ihre Datenbank verlangsamt – Sie müssen eine Entscheidung treffen zwischen Geschwindigkeit und Größe.

Bearbeiten:

Persönlich denke ich, dass Daten in der Datenbank nur dann als XML gespeichert werden sollten, wenn sie eine Struktur haben, die in einem relationalen Modell schwer zu implementieren ist, z. Layouts, Stilbeschreibungen usw. Normalerweise bedeutet dies, dass nicht viele Daten vorhanden sind und die Geschwindigkeit kein Problem darstellt. Daher wurden XML-Funktionen wie Datenvalidierung und -manipulation hinzugefügt (und nicht zuletzt die Möglichkeit, auf den Wert zu klicken in Management Studio und sehen Sie formatiertes XML - ich liebe diese Funktion wirklich!), die Kosten überwiegen.

Ich habe keine direkte Erfahrung mit dem Speichern großer XML-Mengen in der Datenbank und ich würde das nicht tun, wenn ich die Möglichkeit hätte, da es fast immer langsamer ist als ein relationales Modell, aber wenn das der Fall wäre, würde ich' d empfehlen, beide Optionen zu profilieren und zwischen Größe und Geschwindigkeit zu wählen, die Ihren Anforderungen am besten entsprechen.