JetComputeStats 函式
適用于: Windows |Windows Server
JetComputeStats 函式
JetComputeStats函式會逐步引導資料表的每個索引,以確切計算索引中的專案數目,以及索引中的相異索引鍵數目。 這項資訊連同為索引配置的資料庫分頁數目,以及計算的目前時間會儲存在資料庫中的索引中繼資料中。 後續可以使用資訊作業擷取此資料。
JET_ERR JET_API JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
參數
sesid
要用於這個呼叫的會話。
tableid
將用於這個呼叫的資料指標。 描述要計算統計資料的資料表。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errClientRequestToStopJetService |
因為與會話相關聯的實例上的所有活動因為對 JetStopService的呼叫而停止,所以無法完成作業。 |
JET_errInstanceUnavailable |
無法完成作業,因為與會話相關聯的實例發生嚴重錯誤,要求撤銷所有資料的存取權以保護該資料的完整性。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errNotInitialized |
無法完成作業,因為與會話相關聯的實例尚未初始化。 |
JET_errRestoreInProgress |
因為與會話相關聯的實例上正在進行還原作業,所以無法完成作業。 |
JET_errRollbackError |
發生錯誤時,此作業需要復原所有變更,但交易回復本身失敗。 |
JET_errSessionSharingViolation |
同一個會話不能同時用於多個執行緒。 此錯誤只會由 Windows XP 和更新版本傳回。 |
JET_errTermInProgress |
因為與會話相關聯的實例正在關閉,所以無法完成作業。 |
成功時,最新統計資料會儲存在資料庫目錄中,以指定資料指標描述的資料表。
失敗時,不會對資料庫進行任何更新。
備註
這項作業可以是耗用的資源,因為資料表中的每個索引都必須完整地進行。 JetGetRecordPosition 可用來取得索引中專案數目的粗略估計值,但它本身無法估計索引中的相異值數目。
此作業計算的資料會開始過期,且資料表會後續更新。
更新JetComputeStats所建立的資料庫會以延遲的方式進行。 這表示沒有任何記錄排清會伴隨這項作業,而且 JetComputeStats 傳回JET_errSuccess之後的系統損毀仍會導致這些更新遺失。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要 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