oracle 中文技术网,Oracle全文搜索中文

本文探讨了如何通过定期执行索引同步与优化来解决Context索引碎片问题,提高SQL查询速度。实例包括使用CONT Sync Index和CONT Optimize Index过程,以及如何在实际操作中进行任务调度和数据库维护。
摘要由CSDN通过智能技术生成

执行查询

SQL> select * from docs where contains(address,'朝阳区')>0;

ID NAME                             ADDRESS

---------- -------------------------------- --------------------------------------------------

16 张三                             中国北京朝阳区北小营亚运花园1号楼8B

SQL> select * from docs where contains(address,'朝阳区|成都')>0;

ID NAME                             ADDRESS

---------- -------------------------------- -----------------------------------------------

16 张三                             中国北京朝阳区北小营亚运花园1号楼8B

18 王五                             四川成都经济技术开发区世纪大道515号

索引同步

insert into docs values(19,'赵六','九龙旺角山东街409号荣华大厦');

commit;

SQL> select * from docs where contains(address,'旺角')>0;

未选定行

SQL> exec ctx_ddl.sync_index('idx_docs_address');

SQL> select * from docs where contains(address,'旺角')>0;

ID NAME                             ADDRESS

---------- ------------------ --------------------------------

19 赵六                             九龙旺角山东街409号荣华大厦

创建同步job

CREATE or replace procedure cont_sync_index as

BEGIN

ctx_ddl.sync_index('idx_docs_address');

END;

/

VARIABLE jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'cont_sync_index();',

SYSDATE, 'SYSDATE + (1/24/4)');

commit;

END;

/

经常的索引同步将会导致CONTEXT索引产生碎片,索引碎片严重的影响了查询的反应速度。你可以定期优化索引来减少碎片,减少索引大 小,提高查询效率。创建索引优化job:

CREATE or replace procedure cont_optimize_index as

BEGIN

ctx_ddl.optimize_index('idx_aritcle_content','FULL');

END;

/

VARIABLE jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'cont_optimize_index();',

SYSDATE, 'SYSDATE + 1');

commit;

END;

/0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值