OVH Cloud OVH Cloud

SQL Server 2000 et rapidité

1 réponse
Avatar
Houdini
Bonjour à toute(s) et à tous,

Je voudrais pouvoir compter le nombre d'enregistrements total de toutes les
tables d'une base de données SQL Server 2000, en une seule fois (un seul
script). Est-ce possible ? (exemple: select count(*) from "all tables" ?)

Est-il possible d'extraire toutes les données de toutes les tables d'une
base de données SQL Server 2000, en une seule fois (un seul script) ?

Je pose ces questions dans un but de tests de performances.

Merci d'avance.
Cordialement,
Houdini

1 réponse

Avatar
Rudi Bruchez
let Tue, 30 May 2006 07:41:02 -0700, Houdini a écrit:

Bonjour à toute(s) et à tous,

Je voudrais pouvoir compter le nombre d'enregistrements total de toutes les
tables d'une base de données SQL Server 2000, en une seule fois (un seul
script). Est-ce possible ? (exemple: select count(*) from "all tables" ?)

Est-il possible d'extraire toutes les données de toutes les tables d'une
base de données SQL Server 2000, en une seule fois (un seul script) ?

Je pose ces questions dans un but de tests de performances.




Bonjour,

pour simuler un COUNT sur toutes les tables, en partant du principe que
toutes les tables ont au moins un index, tu peux utiliser la table système
sysindexes, qui contient une colonne rowcnt (ou qqch du genre, c'est de
mémoire). Certains disent que la fiabilité n'est pas 100%, mais en général
la valeur est correcte.

Si c'est pour lancer des requêtes pour un test de performance, il existe
une sp non documentée : sp_MSforeachtable. Exemple (de mémoire, non testé):

sp_MSforeachtable "SELECT COUNT(*) FROM ?"

Tu peux envoyer trois commandes sous forme de trois paramètres.
Il y a des exemples ici :
http://sqlpro.developpez.com/cours/sqlserver/MSSQLServer_avoidCursor/


--
Rudi Bruchez - MCDBA
http://www.babaluga.com/