JetSetTableSequential 函数
适用于: Windows |Windows Server
JetSetTableSequential 函数
JetSetTableSequential 函数通知数据库引擎应用程序正在扫描包含给定游标的整个当前索引。 因此,将优化用于访问索引数据的方法,使此方案尽可能快。
Windows XP:JetSetTableSequential 是在 Windows XP 中引入的。
JET_ERR JET_API JetSetTableSequential(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit
);
参数
sesid
用于此调用的会话。
tableid
要用于此调用的游标。
grbit
指定以下零个或多个选项的一组位。
值 |
含义 |
---|---|
JET_bitPrereadForward |
此选项用于在向前方向编制索引。 Windows 7 中引入了 Windows 7:JET_bitPrereadForward 。 |
JET_bitPrereadBackward |
此选项用于向后编制索引。 Windows 7 中引入了 Windows 7:JET_bitPrereadBackward 。 |
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errClientRequestToStopJetService |
操作无法完成,因为调用 JetStopService 后,与会话关联的实例上的所有活动都已停止。 |
JET_errInstanceUnavailable |
操作无法完成,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errNotInitialized |
操作无法完成,因为与会话关联的实例尚未初始化。 |
JET_errRestoreInProgress |
操作无法完成,因为正在对与会话关联的实例执行还原操作。 |
JET_errTermInProgress |
操作无法完成,因为正在关闭与会话关联的实例。 |
如果此函数成功,则游标的当前索引将针对整个索引的顺序扫描进行优化。 不会更改数据库状态。
如果此函数失败,则不会更改游标的配置。 不会更改数据库状态。
备注
如果应用程序需要有效地扫描索引的已知子集,则每当使用 JetSetIndexRange 建立索引范围时,也会执行类似的优化。 此优化仅适用于 Windows XP 和更高版本。
如果应用程序需要有效地扫描索引的未知子集,则不应执行任何操作。 引擎可以自动检测扫描行为,并提前提取数据。 但是,这种行为并不那么咄咄逼人。
此优化将提高扫描主索引的效率,并使仅扫描辅助索引中的索引输入数据的效率。 在检索记录数据时,它不会使扫描辅助索引变得高效。 这是因为引擎不会对记录数据执行预读。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista 或 Windows XP。 |
服务器 |
需要 Windows Server 2008 或 Windows Server 2003。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另请参阅
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetSetIndexRange
JetStopService