Ich habe eine Datenbank, die Daten über Artikel enthält, Strukturen und Hersteller. Das heißt, ein Artikel ist mit 1 Hersteller und mit N Strukturknoten verknüpft (denke an Artikel-Klassifikationsknoten).Umgang mit großen Ergebnismengen in SQL Server Analysis Services
Das Abfragen von Artikeln mit T-SQL mit vielen Bedingungen ist derzeit zu langsam, um für einen E-Shop verwendet zu werden, selbst mit guter Hardware und ordnungsgemäß indizierten Tabellen. (Sollte unter 1 Sekunde liegen). Jetzt frage ich mich, ob es sinnvoll wäre, auf diese Daten über einen OLAP Cube zuzugreifen. Ich habe bereits eine entwickelt, um Aggregationen zu erhalten, wie zum Beispiel: Wie viele Artikel des Herstellers X existieren unter dem Knoten Y rekursiv?
Diese Aggregationen sind ziemlich schnell, jetzt frage ich mich, ob es sinnvoll ist, ganze Artikel-Ergebnis-Sets auch über Cubes abzurufen. Bedeutung: Geben Sie mir jede einzelne Artikel ID des Herstellers X, die unter Knoten Y rekursiv. Da die Ergebnismengen sehr groß sein können, dauert die Abfrage noch länger.
Deshalb meine Frage, gibt es einen Weg, mit großen Ergebnismengen in SSAS umzugehen, oder ist das völlig die falsche Richtung, die ich nehme?
Ja, aber Dinge wie Sortieren und Paging berücksichtigen: Angenommen, der Endbenutzer auf der Benutzeroberfläche wählte einen der eher oberen Strukturknoten, das Ergebnis sind 30'000 Artikel. Jetzt möchte ich sie nach Namen sortiert und nur auf die ersten 100 (oder 200-300 usw.) beschränkt haben. Es ist nicht mehr wirklich möglich .. – driAn
Ja ist es. Unabhängig davon, welche Frontend Sie verwenden, können Sie das Rowset begrenzen und die ORDER-Funktion in MDX verwenden (die meisten Frontends haben eine Schaltfläche dafür), um sie zu sortieren. Ich würde argumentieren, dass Top-10-Listen in SSAS einfacher als SQL sind. Davon abgesehen, wie gut kennen Sie MDX? – Eric
Nun, das Problem mit TOP ist, es funktioniert schlecht, wenn Sie Artikel 29'500 bis 30'000 greifen wollen, mit T-SQL können Sie alle Arten von Optimierungen vornehmen, um nur die 'Zeilenseite' zu holen, die Sie wirklich brauchen. Wie gehen Sie damit in MDX um? Ich sauge an MDX, deshalb suche ich nach Meinungen wie deiner. – driAn