Zusammenfassen von Daten

Das Erstellen von Zusammenfassungsberichten aus aggregierten Transaktionsdaten für Entscheidungsunterstützungssysteme kann ein komplexer und ressourcenintensiver Vorgang sein. Programmierer sollten bei der mehrdimensionalen Analyse von SQL Server-Daten in erster Linie diese Komponenten als Haupttools verwenden:

  • SQL Server Integration Services

    Integration Services unterstützt das Extrahieren von Transaktionsdaten sowie das Transformieren dieser Daten in Zusammenfassungsaggregate in einem Data Warehouse oder Datamart. Weitere Informationen finden Sie unter Übersicht (Integration Services).

  • SQL Server Analysis Services

    Analysis Services organisiert Daten aus einem Data Warehouse in mehrdimensionalen Cubes mit im Voraus berechneten Zusammenfassungsinformationen. Diese Informationen werden verwendet, um schnell Antworten auf komplexe analytische Abfragen bereitzustellen. PivotTable® Service ermöglicht den Clientzugriff auf mehrdimensionale Daten. Analysis Services stellt darüber hinaus eine Reihe von Assistenten zum Definieren der mehrdimensionalen Strukturen bereit, die bei der Analysis-Verarbeitung verwendet werden, sowie ein Microsoft Management Console-Snap-In zum Verwalten der Analysis-Strukturen. Anwendungen können dann eine Gruppe von APIs verwenden, um die Analysis-Daten zu analysieren. Weitere Informationen finden Sie unter Entwickeln und Implementieren mithilfe von Business Intelligence Development Studio.

Verwenden von Transact-SQL für einfache Zusammenfassungsberichte

Anwendungen, die einfache Zusammenfassungsberichte generieren, können die folgenden Transact-SQL-Elemente verwenden:

  • Die Operatoren ROLLUP, CUBE oder GROUPING SETS. Diese Operatoren sind Erweiterungen der GROUP BY-Klausel der SELECT-Anweisung. Weitere Informationen finden Sie unter GROUP BY (Transact-SQL).

  • Die Operatoren COMPUTE oder COMPUTE BY. Diese Operatoren werden zudem GROUP BY zugeordnet. Weitere Informationen finden Sie unter Zusammenfassen von Daten mit COMPUTE und COMPUTE BY.

Diese Operatoren generieren Resultsets, die sowohl Detailzeilen für jedes Element im Resultset als auch Zusammenfassungszeilen für jede Gruppe enthalten, in denen die Aggregatgesamtwerte für die jeweilige Gruppe angezeigt werden. Die GROUP BY-Klausel kann zum Generieren von Ergebnissen verwendet werden, die Aggregate für jede Gruppe enthalten, jedoch keine Detailzeilen.

Anwendungen sollten Analysis Services anstelle von CUBE, ROLLUP, COMPUTE oder COMPUTE BY verwenden. Insbesondere CUBE und ROLLUP sollten Umgebungen vorbehalten sein, die keinen Zugriff auf OLE DB oder ADO haben, wie z. B. Skripts oder gespeicherte Prozeduren.

COMPUTE und COMPUTE BY werden zur Unterstützung der Abwärtskompatibilität bereitgestellt. Der ROLLUP-Operator sollte bevorzugt anstelle der Operatoren COMPUTE oder COMPUTE BY verwendet werden. Die zusammenfassenden Werte, die von COMPUTE oder COMPUTE BY generiert werden, werden als separate Resultsets zurückgegeben, und zwar überlappend mit den Resultsets, die die Detailzeilen für jede Gruppe zurückgeben, oder als ein Resultset, das die Gesamtwerte enthält und an das Hauptresultset angefügt ist. Die Verarbeitung dieser mehrfachen Resultsets steigert die Komplexität des Codes in einer Anwendung. Im Zusammenhang mit Servercursorn werden weder COMPUTE noch COMPUTE BY unterstützt. ROLLUP wird jedoch im Zusammenhang mit Servercursorn unterstützt. CUBE und ROLLUP generieren ein einzelnes Resultset, in das die Teilergebnis- und Gesamtwertzeilen eingebettet sind. In manchen Fällen kann der Abfrageoptimierer für ROLLUP effizientere Ausführungspläne generieren als für COMPUTE und COMPUTE BY.

Wenn die GROUP BY-Klausel ohne diese Operatoren verwendet wird, gibt sie ein einzelnes Resultset mit einer Zeile pro Gruppe zurück, die die Aggregatteilergebnisse für die Gruppe enthält. Im Resultset sind keine Detailzeilen enthalten.

Siehe auch

Andere Ressourcen