Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (P-Z)

 

REFRESH TEXT INDEX 语句

刷新文本索引。

语法
REFRESH TEXT INDEX text-index-name ON [ owner.]table-name
[ WITH { 
      ISOLATION LEVEL isolation-level 
      | EXCLUSIVE MODE 
      | SHARE MODE } ]
[ FORCE { BUILD | INCREMENTAL } ]
参数
  • WITH 子句   WITH 子句用于指定刷新过程中在基础性基表上获取的锁的类型。获取的锁类型决定了填充文本索引的方式以及事务并发性受影响的方式。如果不指定 WITH 子句,则无论为连接设置何种隔离级别,缺省值均为 WITH ISOLATION LEVEL READ UNCOMMITTED。

    可以指定以下 WITH 子句选项:

    • ISOLATION LEVEL isolation-level   WITH ISOLATION LEVEL 用于更改执行刷新操作的隔离级别。有关隔离级别的信息,请参见使用事务和隔离级别隔离级别和一致性

      语句执行结束时会恢复连接的原始隔离级别。

    • EXCLUSIVE MODE   如果不想更改隔离级别,但希望保证更新后的数据与基础表中已提交数据保持一致,则使用 WITH EXCLUSIVE MODE。使用 WITH EXCLUSIVE MODE 时,会在基础性基表上放置独占表锁,在刷新操作完成前,其它事务无法对基础表执行查询、更新或其它任何操作。如果无法获取表锁,则刷新操作将失败并返回错误。请参见表锁

    • SHARE MODE   WITH SHARE MODE 用于在执行刷新操作时为其它事务赋予对基础表的读权限。指定此子句后,在执行刷新操作之前,基础性基表将获得共享表锁,并持续到刷新操作完成。请参见表锁

  • FORCE 子句   此子句用于指定刷新方法。如果未指定此子句,则数据库服务器会根据表的更改程度来决定是执行增量更新还是完整重建。请参见文本索引刷新类型

    • FORCE BUILD 子句   此子句用于强制文本索引进行完整重建。

    • FORCE INCREMENTAL 子句   此子句用于强制文本索引进行增量更新。

注释

只能对定义为 MANUAL REFRESH 或 AUTO REFRESH 的文本索引使用此语句。

使用 FORCE 子句时,可以检查 sa_text_index_stats 系统过程的结果,以确定完整重建 (FORCE BUILD) 和增量更新 (FORCE INCREMENTAL) 哪个最合适。请参见sa_text_index_stats 系统过程

不能对定义为 IMMEDIATE REFRESH 的文本索引执行 REFRESH TEXT INDEX 语句。

对于 MANUAL REFRESH 文本索引,使用 sa_text_index_stats 系统过程确定是否应刷新文本索引。以 doc_length 除 pending_length,并将所得百分比作为确定是否需要进行刷新的标准。要确定需要的重建类型,请对 deleted_length 和 doc_count 应用相同方法。

权限

必须是基础表的所有者,或者具有 DBA 权限或 REFERENCES 权限。

当存在使用 WITH HOLD 子句打开的使用语句快照或事务快照的游标时,不能执行此语句。请参见快照隔离

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下语句刷新名为 MarketingTextIndex 的文本索引,强制其重建。

REFRESH TEXT INDEX MarketingTextIndex ON MarketingInformation
   FORCE BUILD;