Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: Windows | Windows Server
Функция JetComputeStats
Функция JetComputeStats выполняет обход по каждому индексу таблицы для точного вычисления количества записей в индексе и количества отдельных ключей в индексе. Эти сведения, а также количество страниц базы данных, выделенных для индекса, и текущее время вычисления хранятся в метаданных индекса в базе данных. Эти данные можно впоследствии получить с помощью информационных операций.
JET_ERR JET_API JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
Параметры
sesid
Сеанс, используемый для этого вызова.
tableid
Курсор, который будет использоваться для этого вызова. Описывает таблицу для вычисления статистики.
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
|---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errClientRequestToStopJetService |
Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService. |
JET_errInstanceUnavailable |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
JET_errNotInitialized |
Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован. |
JET_errRestoreInProgress |
Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом. |
JET_errRollbackError |
Произошла ошибка, требующая отката всех изменений в этой операции, но произошел сбой самого отката транзакции. |
JET_errSessionSharingViolation |
Один и тот же сеанс нельзя использовать для нескольких потоков одновременно. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках. |
JET_errTermInProgress |
Невозможно завершить операцию, так как экземпляр, связанный с сеансом, завершает работу. |
После успешного выполнения актуальная статистика сохраняется в каталогах баз данных для таблицы, описанной с помощью заданного курсора.
При сбое никакие обновления базы данных не выполняются.
Комментарии
Эта операция может потреблять ресурсы, так как каждый индекс в таблице должен выполняться в полном объеме. JetGetRecordPosition можно использовать для получения приблизительной оценки количества записей в индексе, но сама по себе она не может оценить количество различных значений в индексе.
Данные, вычисленные этой операцией, начинают устаревать, и таблица впоследствии обновляется.
Обновления к базе данных, созданной JetComputeStats, выполняются в отложенном режиме. Это означает, что эта операция не будет сопровождаться очисткой журнала, а сбой системы после возврата JET_errSuccess JetComputeStats по-прежнему может привести к потере этих обновлений.
Требования
| Требование | Значение |
|---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Professional. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
См. также:
JET_ERR
JET_TABLEID
JET_SESID
JetGetRecordPosition
JetGetTableInfo
JetGetTableIndexInfo
JetStopService