Zählen Tabellen mit großen Datenmengen möglicherweise sehr langsam, manchmal dauert es Minuten; Es kann auch Deadlock auf einem ausgelasteten Server generieren. Ich möchte reale Werte anzeigen, NOLOCK ist keine Option.SQL Server Count ist langsam
Die Server, die ich verwende, sind SQL Server 2005 oder 2008 Standard oder Enterprise - wenn es darauf ankommt. Ich kann mir vorstellen, dass SQL Server die Zählungen für jede Tabelle verwaltet und wenn es keine WHERE-Klausel gibt, könnte ich diese Nummer ziemlich schnell bekommen, oder?
Zum Beispiel:
SELECT COUNT(*) FROM myTable
sollte sofort mit dem richtigen Wert zurück. Muss ich mich darauf verlassen, dass Statistiken aktualisiert werden?
einen [Abfrageausführungsplan] (http://stackoverflow.com/questions/7359702/how-do -i-erhalte-einen-Abfrage-Ausführungsplan, dann können wir reden ...('SELECT COUNT' fragt die Tabelle direkt ab, anstatt Statistiken zu verwenden, da Statistiken möglicherweise veraltet sind.) – Justin
Dumme Frage, aber haben Sie einen Index? – Kermit
@FreshPrinceOfSO es ist immer noch langsam, wenn Sie auf "Id" zählen (Bigint, Primärschlüssel, Identitätsspezifikation = wahr). – ANeves