Re: XML-Speicherung beim SQL Server 2005
- From: "Elmar Boye" <ElmarB@xxxxxxx>
- Date: Tue, 13 Sep 2005 13:01:36 +0200
Hallo Alex,
Alex G. <AlexG@xxxxxxxxxxxxxxxxxxxxxxxxx> schrieb ...
> also wenn die XML-Dokumente geparst werden, werden sie in relationalen
> Tabellen zerlegt, nach der Speicherungsmöglichkeit XRel?
XRel ist ein eigenes Konzept mit eigener Engine, das verfolgt
der SQL Server so nicht.
> Dann wird die XML-Anfrage in einer relationalen Anfrage übersetzt?
Dir sollte mittlerweile klar sein, das der SQL Server dafür XQuery einsetzt.
http://msdn.microsoft.com/library/en-us/dnsql90/html/sql2k5_xqueryintro.asp?frame=true
Die Daten werden nicht in relationale Tabellen zerlegt, da das direkt
schwer bis gar nicht möglich ist, schon aufgrund der hierarchischen
Struktur von XML. Und XML Daten müssen nicht zwangsläufig relationalen
Konzepten folgen.
Mehr dazu in:
http://msdn.microsoft.com/library/en-us/dnsql90/html/sql25xmlbp.asp?frame=true
XML Best Practices for Microsoft SQL Server 2005
> Oder wie ist das gemeint mit Parsen des Dokumentes!?!?...im SQL
> Server 2005 wird doch nicht der DOM-Baum im Hauptspeicher
> aufgebaut!!!!...
Nein. Die intern verwendete Struktur ist schon komplexer.
Um Deine (und meine) Neugier zu befriedigen, habe ich mal ein
wenig rumgespielt. Einige der Ergebnisse findest Du unter:
http://www.elmarboye.de/download/XmlContact.zip
Dort habe ich Teile aus der AdventureWorks extrahiert,
um die relevanten Daten besser analyisieren zu können.
Erwarte aber bitte keine detaillierte Beschreibung von mir.
Eine Analyse kann zum einen letztendlich nur Vermutung sein,
und setzt einige Kenntnisse über die internen Strukturen des
SQL Servers voraus, deren Erläuterung hier den Platz sprengen
würden.
Erläuterungen zu DBCC PAGE findest Du im Web.
Oder in Kalen Delanhey: Inside SQL Server 2000.
Wo auch weitere Informationen zu SQL Server Datenstrukturen
zu finden sind.
Zu erkennen sollte sein, dass die Daten im Xml Datentyp abgelegt
werden und dabei keine XML Dokumentstruktur verwendet wird.
Und welche Funktion die Indizes übernehmen. Wie es auch
die vorläufige SQL Server 2005 Dokumentation:
http://msdn2.microsoft.com/en-us/library/ms251218(en-US,SQL.90).aspx
und der bereits erwähnte Artikel von Bob Beauchemin erläutert.
> so wie es DB2 und Oracle (bei dokumentorientierter
> Speicherung) machen?
Mir sind deren XML Features zu wenig bekannt, um das wirklich
vergleichen zu können. Ein Pointer:
http://sqljunkies.com/WebLog/mrys/archive/2005/04/20/12380.aspx
BTW: Was meine Aussage - ohne damalige Kenntnis des Beitrags - stützt,
dass die Speicherform sekundär ist.)
Und offensichtlich mal wieder Marketing (Politik) im Spiel ist.
> Und wenn der primary xml index erstellt wird, werden die XML-Daten in
> relationalen Tabellen materialisiert, damit nicht immer beim Parsen die
> XML-Dokumente zerlegt werden sollen!
Aus obigen Informationen sollte Dir klar werden, dass im XML Datentyp
keine strukturierten XML Dokumente gespeichert werden.
Vielmehr werden die Daten in ein internes (pyhsisches) Format
umgewandelt und nur bei Ausgabe als (logische) XML Struktur dargestellt.
XML Indizes zerlegen die Daten weiter in ihre Bestandteile, so dass eine
schnellere Lokalisierung möglich ist.
Gruss
Elmar
.
- References:
- XML-Speicherung beim SQL Server 2005
- From: Alex G.
- Re: XML-Speicherung beim SQL Server 2005
- From: Elmar Boye
- Re: XML-Speicherung beim SQL Server 2005
- From: Alex G.
- Re: XML-Speicherung beim SQL Server 2005
- From: Elmar Boye
- Re: XML-Speicherung beim SQL Server 2005
- From: Alex G.
- XML-Speicherung beim SQL Server 2005
- Prev by Date: Re: DTS Datenexport in eine Textdatei
- Next by Date: Re: 100 % CPU-Auslastung durch SQL-Server 2000
- Previous by thread: Re: XML-Speicherung beim SQL Server 2005
- Next by thread: Re: Create View Anweisung mal in schön schön :)
- Index(es):
Relevant Pages
|