Si vous voulez contourner le temps et les ressources nécessaires pour compter (*) vos tables de 3 millions de lignes. Essayez ceci par SQL SERVER Central par Kendal Van Dyke.
Comptage des lignes à l'aide de sysindex Si vous utilisez SQL 2000, vous devrez utiliser les sysindex comme suit :
-- Shows all user tables and row counts for the current database
-- Remove OBJECTPROPERTY function call to include system objects
SELECT o.NAME,
i.rowcnt
FROM sysindexes AS i
INNER JOIN sysobjects AS o ON i.id = o.id
WHERE i.indid < 2 AND OBJECTPROPERTY(o.id, 'IsMSShipped') = 0
ORDER BY o.NAME
Si vous utilisez SQL 2005 ou 2008, l'interrogation des sysindex fonctionnera toujours, mais Microsoft indique que les sysindex pourraient être supprimés dans une future version de SQL Server. Par conséquent, vous devriez utiliser les DMV à la place, comme suit :
-- Shows all user tables and row counts for the current database
-- Remove is_ms_shipped = 0 check to include system objects
-- i.index_id < 2 indicates clustered index (1) or hash table (0)
SELECT o.name,
ddps.row_count
FROM sys.indexes AS i
INNER JOIN sys.objects AS o ON i.OBJECT_ID = o.OBJECT_ID
INNER JOIN sys.dm_db_partition_stats AS ddps ON i.OBJECT_ID = ddps.OBJECT_ID
AND i.index_id = ddps.index_id
WHERE i.index_id < 2 AND o.is_ms_shipped = 0 ORDER BY o.NAME