2009-02-28 12 views
0

Wenn ich Tausende von hierarchischen Datensätzen aus Datenbank und XML generieren, was wird der beste Weg, um es mit einer guten Leistung und weniger CPU-Auslastung zu tun?Was ist der beste Weg, XML aus den Daten in der Datenbank zu generieren?

+0

Konnten Sie vielleicht mehr Informationen über die Anwendung und die Datenbankstruktur anbieten? – thomasrutter

+0

Hierbei handelt es sich um eine benutzerdefinierte Anwendung, die Daten zu einer Person zurückgibt. Die Person kann bis zu 10000 Datensätze in der untergeordneten Tabelle haben. So wird es wie sein ... Allgemeines ... .... 10000 Elemente ... renil

Antwort

7

können Sie XML-Ausgabe direkt von SQL Server 2005

FOR XML  

Die Ergebnisse einer Abfrage verwenden als XML-Dokument zurückgegeben. Muss mit einer der drei RAW, AUTO und EXPLICIT Optionen

RAW 

Jede Zeile in der Ergebnismenge verwendet wird, ist ein XML-Element mit einer generischen Kennung als Element-Tag

AUTO  

Ergebnisse in einer einfachen verschachtelten XML-Struktur zurückgegeben. Ein Element wird

in der SELECT-Klausel für jedes Tabellenfeld erzeugt wird
EXPLICIT  

Gibt die Form der resultierenden XML-Struktur explizit. Eine Abfrage muss in eine besonderen Art und Weise geschrieben werden, so dass zusätzliche Informationen über die Verschachtelung angegeben

XMLDATA 

Gibt das Schema, aber nicht fügt das Wurzelelement zu dem Ergebnis

Gibt an, dass die Spaltensindzurückgegeben als untergeordnete Elemente an die Tabelle Element. Wenn nicht anders angegeben, werden sie als abgebildet Attribute

ein Inline-XSD-Schema zur gleichen Zeit generieren

XMLSCHEMA 

verwenden, können Sie NULL-Werte in Datensätzen umgehen mit

XSINIL 

können Sie geben Sie auch Daten in binärer Form zurück.

Sie möchten vielleicht einen Blick auf MSDN for XML support in SQL Server 2005, für Technologien wie XQuery, XML-Datentyp usw.

1

Oracle hat Tools dafür, also denke ich, dass SQL-Server auch, aber Sie brauchen ein Schema. Persönlich verwende ich für ein kleines Set ein PHP-Skript, das ich in der Nähe habe, aber für große Dinge mit Anpassungsbedarf ist eine andere Geschichte.

2

Das hängt davon ab - wenn Ihre Anwendungs- und Datenbankserver sich auf separaten Rechnern befinden, müssen Sie angeben, auf welcher CPU Sie die Last reduzieren möchten. Wenn Ihre Datenbank bereits geladen ist, sollten Sie besser die XML-Transformation auf Ihrem Anwendungsserver durchführen, ansonsten gehen Sie voran und nutzen SQL Server FOR XML-Funktionen.

Verwandte Themen