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

    Mots clefs liés à cet article:

    • nbre de lignes table partition
    • sql server nombre d\enregistrement par table
    • compter le nombre d\enregistrements dans un select sql
    • oracle nombre de lignes grosse table
    • connaitre nombre table bdd
    • comment avoir le nombre dune table de bddselon une colonne en php
    • sql nombre denregistrements par table
    • compte en sql le nombre d\enregistrement d\une table
    • compter le nombre de lignes dans partition
    • remplir une liste avec un enregistrement dune table java