📊 Zeilen zählen – effizient mit sys.partitions

Statt COUNT(*) über die Systemkataloge – schnell, ressourcenschonend und fast immer genau genug
Wer schon einmal versucht hat, mit SELECT COUNT(*) FROM Tabelle die Größe einer Datenbank zu ermitteln, weiß: Das kann bei großen Tabellen ewig dauern und blockiert Ressourcen. Viel effizienter ist der Blick in die Systemkataloge. Das folgende Skript liefert die Zeilenanzahl aller Benutzertabellen auf einen Blick – ohne teure vollständige Scans.
SELECT 
  SCHEMA_NAME(schema_id) AS [SchemaName],
  [Tables].name AS [TableName],
  SUM([Partitions].[rows]) AS [TotalRowCount]
FROM sys.tables AS [Tables]
JOIN sys.partitions AS [Partitions]
  ON [Tables].[object_id] = [Partitions].[object_id]
  AND [Partitions].index_id IN (0, 1) -- 0 = Heap, 1 = Clustered Index
-- WHERE [Tables].name = N'IhreTabelle' -- bei Bedarf entkommentieren
GROUP BY SCHEMA_NAME(schema_id), [Tables].name
ORDER BY [TotalRowCount] DESC;
🔍 Wie funktioniert es?
  • sys.tables liefert alle Benutzertabellen.
  • sys.partitions enthält pro Index (oder Heap) eine Zeile mit der aktuellen Zeilenanzahl in rows.
  • Der Filter index_id IN (0,1) stellt sicher, dass nur der Heap (0) oder der clustered Index (1) berücksichtigt wird – doppelte Zählungen (z. B. durch nicht‑clustered Indizes) werden vermieden.
  • SUM() addiert die Zeilen, falls eine Tabelle partitioniert ist (mehrere Partitionen pro Index).
💡 Hinweis zur Genauigkeit: Die Werte stammen aus den Systemkatalogen und sind fast immer aktuell – bei sehr hoher Schreibaktivität kann es minimale Abweichungen geben. Für Größenabschätzungen, Dokumentationen oder Capacity Planning ist die Abfrage aber völlig ausreichend. Eine echte COUNT(*) wäre exakter, aber deutlich teurer.
💡 Einsatzmöglichkeiten
  • Datenbankgrößen-Check – Welche Tabellen sind die größten?
  • Vor einer Archivierung – Wie viele Zeilen wandern um?
  • Reporting & Dokumentation – schnelle Übersicht ohne Last.
🔧 Tipp: Mit der auskommentierten WHERE-Klausel können Sie gezielt eine einzelne Tabelle prüfen. Die Abfrage gehört in jede DBA‑Werkzeugkiste.
Fazit: Sparen Sie Zeit und Ressourcen – nutzen Sie sys.partitions für schnelle Zeilenzählungen. Das Skript ist ideal für Monitoring, Dokumentation und erste Performanceanalysen.

Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Advertisement
If you accept, the ads on the page will be adapted to your preferences.
Google Ad
Save