Fonction JetComputeStats
S’applique à : Windows | Windows Server
Fonction JetComputeStats
La fonction JetComputeStats guide chaque index d’une table pour calculer exactement le nombre d’entrées dans un index et le nombre de clés distinctes dans un index. Ces informations, ainsi que le nombre de pages de base de données allouées pour un index et l’heure actuelle du calcul, sont stockées dans les métadonnées d’index de la base de données. Ces données peuvent être récupérées par la suite à l’aide d’opérations d’information.
JET_ERR JET_API JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
Paramètres
sesid
Session à utiliser pour cet appel.
tableid
Curseur qui sera utilisé pour cet appel. Décrit la table sur laquelle calculer des statistiques.
Valeur renvoyée
Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. Pour plus d’informations sur les erreurs ESE possibles, consultez Erreurs du moteur de stockage extensible et Paramètres de gestion des erreurs.
Code de retour |
Description |
---|---|
JET_errSuccess |
L’opération s’est terminée avec succès. |
JET_errClientRequestToStopJetService |
Il n’est pas possible d’effectuer l’opération, car toutes les activités sur le instance associée à la session ont cessé à la suite d’un appel à JetStopService. |
JET_errInstanceUnavailable |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session a rencontré une erreur irrécupérable qui nécessite que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errNotInitialized |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session n’a pas encore été initialisé. |
JET_errRestoreInProgress |
Il n’est pas possible d’effectuer l’opération, car une opération de restauration est en cours sur le instance associé à la session. |
JET_errRollbackError |
Une erreur s’est produite nécessitant que cette opération annule toutes les modifications, mais la restauration de la transaction elle-même a échoué. |
JET_errSessionSharingViolation |
La même session ne peut pas être utilisée pour plusieurs threads en même temps. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errTermInProgress |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session est en cours d’arrêt. |
En cas de réussite, les statistiques à jour sont stockées dans les catalogues de base de données pour la table décrite avec le curseur donné.
En cas d’échec, aucune mise à jour de quelque type que ce soit n’est apportée à la base de données.
Notes
Cette opération peut consommer des ressources, car chaque index d’une table doit être parcouru dans son intégralité. JetGetRecordPosition peut être utilisé pour obtenir une estimation approximative du nombre d’entrées dans un index, mais il ne peut pas en soi estimer le nombre de valeurs distinctes dans un index.
Les données calculées par cette opération commencent à devenir obsolètes et la table est ensuite mise à jour.
Mises à jour à la base de données effectuée par JetComputeStats sont effectuées de manière différée. Cela signifie qu’aucun vidage du journal ne sera accompagné de cette opération et qu’un plantage du système suite à un retour de JET_errSuccess par JetComputeStats peut toujours entraîner la perte de ces mises à jour.
Spécifications
Condition requise | Valeur |
---|---|
Client |
Nécessite Windows Vista, Windows XP ou Windows 2000 Professionnel. |
Serveur |
Nécessite Windows Server 2008, Windows Server 2003 ou Windows 2000 Server. |
En-tête |
Déclaré dans Esent.h. |
Bibliothèque |
Utilisez ESENT.lib. |
DLL |
Nécessite ESENT.dll. |
Voir aussi
JET_ERR
JET_TABLEID
JET_SESID
JetGetRecordPosition
JetGetTableInfo
JetGetTableIndexInfo
JetStopService