Anzahl der Zeilen SQL Server

7

Wie kann man die Anzahl der Zeilen einer Tabelle zählen oder wissen, ohne die ganze Tabelle zu scannen, vielleicht mit ROW_NUMBER ?

    
cMinor 04.03.2011, 21:22
quelle

5 Antworten

16

Wenn Sie eine genaue Anzahl benötigen, müssen Sie einen COUNT(*) ausführen, der den gruppierten Index scannt.

Sie können eine grobe Zählung mit dem sys.partitions Schema erhalten, wie hier gezeigt Ссылка

Update: Um die Anzahl in eine Variable zu bekommen:

%Vor%     
The Scrum Meister 04.03.2011, 21:25
quelle
3
%Vor%

gibt die Anzahl der Zeilen zurück

    
Simon 04.03.2011 21:24
quelle
3

Ein bisschen spät zur Party hier, aber in SQL Server 2005 können Sie auch die gespeicherte Prozedur sp_spaceused verwenden:

%Vor%

Ich habe mir angewöhnt, sp_spaceused anstelle von SELECT COUNT(*) FROM Table zu verwenden, weil es viel schneller ist. Es wird jedoch höchstwahrscheinlich nicht so genau wie COUNT (*) sein.

MSDN: Ссылка

    
rsbarro 04.03.2011 22:37
quelle
1

Es gibt keine ROW_NUMBER in SQL Server, nur Oracle. Verwenden Sie:

%Vor%

Wo primary key die Primärschlüsselspalte Ihrer Tabelle ist.

Da es sich um einen Primärschlüssel handelt, ist sein Index bereits indiziert, sodass SQL ihn zählen kann, ohne die gesamte Tabelle zu durchsuchen (er verwendet einen Clustered-Index, der viel schneller ist als ein vollständiger Tabellenscan) )

Sie könnten auch sys.indexes schema verwenden, aber es ist nicht korrekt, und Sie benötigen Zugriffsrechte für Datenbankadministratoren, und der Benutzer Ihrer Anwendungsdatenbank soll keine Berechtigungen in diesem Schema haben

    
MestreLion 04.03.2011 21:32
quelle
0

Ich glaube nicht, dass du das meinst, aber ich werde es versuchen:

%Vor%     
CloudyMarble 04.03.2011 21:25
quelle

Tags und Links