Re: XML-Speicherung beim SQL Server 2005



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

.



Relevant Pages

  • Re: search xml document
    ... Unfortunately, SQL Server 2000 Full-text Search or SQL FTS for short, was ... Service and using either Microsoft's XML IFilter or other 3rd Party ...
    (microsoft.public.sqlserver.fulltext)
  • Re: how to insert xml into sql 2005
    ... DECLARE @xml XML; ... Access side the DBMS (SQL or Access) will see the other's tables as local ... Jet engine pulls the entire table from SQL Server and performs the join ... I would recommend loading your Access data into tables located on SQL ...
    (microsoft.public.sqlserver.xml)
  • Re: .NET Funktionen zu XML->SQL-Server
    ... die mir aus einem XML-Schema eine Tabelle in einer Datenbank ... Ab SQL Server 2005 werden auch Schemas ... XML Best Practices for Microsoft SQL Server 2005 ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Die XPath lower-case() Funktion in SQL Server scheint nicht implementiert zu sein..
    ... wie würdet ihr denn eine Abfrage gegen SQL Server 2005 formulieren, ... Das funktioniert ganz gut mit folgender Abfrage: ... diese scheint in SQL Server allerdings nicht verfügbar zu sein. ... declare @x xml ...
    (microsoft.public.de.sqlserver)
  • Re: Download the JAVA , .NET and SQL Server interview with answers
    ... 2000 Interview questions of .NET, JAVA and SQL Server Interview ... XML Integration ...
    (comp.lang.java.programmer)

Quantcast