Verbesserung eindeutiger Zählabfragen über mehrere Spalten
Das Zählen eindeutiger Werte über mehrere Spalten ist eine häufige Anforderung bei der Datenanalyse. Eine Möglichkeit, dies zu erreichen, ist die Verwendung einer Unterabfrage, wie im bereitgestellten Codeausschnitt gezeigt. Dieser Ansatz kann sich jedoch möglicherweise auf die Leistung auswirken.
Alternative Lösung: Persistierte berechnete Spalten
Um die Leistung solcher Abfragen zu verbessern, sollten Sie die Verwendung persistenter berechneter Spalten in Betracht ziehen. Eine persistente berechnete Spalte berechnet und speichert einen Wert basierend auf einem definierten Ausdruck. In diesem Fall können Sie eine berechnete Spalte erstellen, die die beiden Spalten mithilfe einer Hash-Funktion oder Verkettung kombiniert:
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + ',' + DocumentSessionId) PERSISTED
Nach der Speicherung wird die berechnete Spalte zu einer indizierten, deterministischen Spalte, die für schnelle Abfragen verwendet werden kann . Durch Zählen der unterschiedlichen Werte dieser berechneten Spalte können Sie das gleiche Ergebnis wie mit dem Unterabfrageansatz erzielen:
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
Vorteile:
Hinweis: Die Wirksamkeit dieses Ansatzes hängt von der Datenverteilung und der richtigen Konfiguration der Datenbankeinstellungen ab.
Das obige ist der detaillierte Inhalt vonWie können persistente berechnete Spalten die Leistung für Abfragen zur eindeutigen Anzahl über mehrere Spalten hinweg verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!