## Kedy použiť Pri inventarizácii databázy, plánovaní migrácie alebo pred archiváciou dát. ## Ako čítať výsledok `approx_rows` pochádza z partition stats (heap alebo clustered index), `reserved_mb` a `used_mb` sú za heap / clustered index **bez** nonclustered indexov. > [!WARNING] > Počet riadkov je približný. Na presný audit použi `COUNT_BIG(*)` na konkrétnu tabuľku a počítaj s I/O nákladom. **Oprávnenia:** `VIEW DATABASE STATE` (na SQL Server 2022 stačí aj `VIEW DATABASE PERFORMANCE STATE`). Spúšťa sa v cieľovej databáze. **Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Veľkosť databáz a dátových súborov](script.php?id=2&s=velkost-databaz-a-datovych-suborov)
Skript
Počet riadkov a veľkosť tabuliek (z metadát)
Približný počet riadkov a rezervované / použité MB každej tabuľky bez drahého COUNT(*).
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Počet riadkov a veľkosť tabuliek (z metadát)
Účel: Približný počet riadkov a rezervované / použité MB každej tabuľky bez drahého COUNT(*).
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
SELECT SCHEMA_NAME(t.schema_id) AS schema_name, t.name AS table_name,
SUM(ps.row_count) AS approx_rows,
CAST(SUM(ps.reserved_page_count)*8.0/1024 AS decimal(18,1)) AS reserved_mb,
CAST(SUM(ps.used_page_count)*8.0/1024 AS decimal(18,1)) AS used_mb
FROM sys.tables AS t
JOIN sys.dm_db_partition_stats AS ps ON ps.object_id=t.object_id
WHERE ps.index_id IN (0,1)
GROUP BY t.schema_id,t.name
ORDER BY reserved_mb DESC;