Heim >Datenbank >MySQL-Tutorial >Warum ist COUNT(*) in SQL Server so langsam und wie kann ich es beschleunigen?
Grundlegendes zur Leistung von SQL count(*)
Stellen Sie sich eine Abfrage vor, die einen Zählvorgang für eine Tabelle mit über 20 Millionen Zeilen ausführt. Die Ausführungszeit variiert je nach Zählausdruck erheblich, wobei es bei Ausdrücken, die einen Vergleich erfordern (z. B. count(*) = 1), zu erheblichen Verzögerungen kommt.
Grundursache für langsame Ausführungen
Die Erklärung für diesen Leistungsunterschied liegt in der von SQL Server verwendeten Optimierungstechnik. Für die erste Abfrage (count() = 0) optimiert der Server sie, um das Vorhandensein von Zeilen (exists(select from BookChapters)) zu prüfen, anstatt sie zu zählen.
In Im Gegensatz dazu verwendet SQL Server für die anderen Abfragen (count() = 1 oder count() > 1) einen nicht gruppierten Index, um die zu zählen Reihen. Da der Tabelle in diesem Fall jedoch keine nicht gruppierten Indizes fehlen, muss der Server die gesamte Tabelle scannen, was zu einer erheblichen Ausführungszeit führt.
Leistungsverbesserungen
Zu Verbessern Sie die Leistung von count(*)-Abfragen:
Alternative Methoden für schnelle Zeilenzählungen
Das obige ist der detaillierte Inhalt vonWarum ist COUNT(*) in SQL Server so langsam und wie kann ich es beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!