[SQL] Nombre d’enregistrements dans une table.

On a souvent besoin de connaitre le nombre d’enregistrements (rows) d’une table.

On peut bien sur faire une requête avec un count sur une colonne

SELECT COUNT(monid) FROM matable

par contre, cette requête peut s’avérer très lente pour compter le nombre de lignes.
(Plus de 1 min pour une table de 2 500 000 lignes).


La requête suivante en s’appuyant sur la table sys.partitions permet d’obtenir le même résultat beaucoup plus rapidement.

SELECT ROWS
FROM sys.partitions
WHERE OBJECT_NAME(object_id) IN (matable)

(Instantané pour une table de 2 500 000 lignes).

Petite variante permettant de connaitre la table ayant le plus d’enregistrement.

SELECT OBJECT_NAME(object_id), ROWS
FROM sys.partitions
WHERE ROWS=(SELECT MAX(ROWS) FROM sys.partitions)

(Testé sous sql server 2008).



Voilà, j’espère que ces requêtes vous permettrons de comptabiliser efficacement vos données.
Et si vous avez envie d’en savoir plus sur SQL je vous invite aussi à lire :

Sources:

Points d’intérêt de cet article : Count(), compter nombre enregistrement, sql server, sys.partitions

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.