Compartilhar via


Função JetComputeStats

Aplica-se a: Windows | Windows Server

Função JetComputeStats

A função JetComputeStats orienta cada índice de uma tabela para calcular exatamente o número de entradas em um índice e o número de chaves distintas em um índice. Essas informações, juntamente com o número de páginas de banco de dados alocadas para um índice e a hora atual da computação, são armazenadas em metadados de índice no banco de dados. Esses dados podem ser recuperados posteriormente com operações de informações.

    JET_ERR JET_API JetComputeStats(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid
    );

Parâmetros

sesid

A sessão a ser usada para essa chamada.

Tableid

O cursor que será usado para essa chamada. Descreve a tabela na qual calcular estatísticas.

Valor Retornado

Essa função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros de ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errSuccess

A operação foi concluída com sucesso.

JET_errClientRequestToStopJetService

Não é possível concluir a operação porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService.

JET_errInstanceUnavailable

Não é possível concluir a operação porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados.

Esse erro só será retornado pelo Windows XP e versões posteriores.

JET_errNotInitialized

Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada.

JET_errRestoreInProgress

Não é possível concluir a operação porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errRollbackError

Ocorreu um erro ao exigir que essa operação revertesse todas as alterações, mas a reversão da transação em si falhou.

JET_errSessionSharingViolation

A mesma sessão não pode ser usada para mais de um thread ao mesmo tempo.

Esse erro só será retornado pelo Windows XP e versões posteriores.

JET_errTermInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo desligada.

Em caso de êxito, as estatísticas atualizadas são armazenadas nos catálogos de banco de dados da tabela descrita com o cursor fornecido.

Em caso de falha, nenhuma atualização de qualquer tipo é feita no banco de dados.

Comentários

Essa operação pode consumir recursos, pois cada índice em uma tabela deve ser perampedido em sua totalidade. JetGetRecordPosition pode ser usado para obter uma estimativa aproximada do número de entradas em um índice, mas não pode estimar por si só o número de valores distintos em um índice.

Os dados calculados por essa operação começam a ficar desatualizados e a tabela é atualizada posteriormente.

Atualizações para o banco de dados feito pelo JetComputeStats são feitas de maneira lenta. Isso significa que nenhuma liberação de log será acompanhada por esta operação e uma falha do sistema após um retorno de JET_errSuccess pelo JetComputeStats ainda pode fazer com que essas atualizações sejam perdidas.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer o Windows Server 2008, o Windows Server 2003 ou o Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Consulte Também

JET_ERR
JET_TABLEID
JET_SESID
JetGetRecordPosition
JetGetTableInfo
JetGetTableIndexInfo
JetStopService