首页 > 编程知识 正文

oracle如何提升查询效率,oracle

时间:2023-05-03 10:38:50 阅读:21778 作者:2878

分两种思路考虑模糊查询的效率。 -注:集中精力处理百万级数据量,少量数据即可

第一,将数据保存在业务内存中,通过查询内存来提高效率。 (要求:硬件内存高)

1 )想实现存储器的动态数据时,可以监视表数据的变化并更新存储器。

二是改进了oracle数据库的查询方法。

1、使用两侧带“%”的查询时,oracle不会通过索引,因此查询效率很低。

示例: selectcount(* ) from lui _ user _ basetwheret.user _ name like ' % cs % ';

2、like'.% '和like'% . '虽然进行了索引,但效率仍然很低。

3、据说使用以下sql,他的效率提高了10倍,但数据量小时

选择计数(* ) from lui_user_base where rowid in ()

selectrowidfromlui _ user _ basetwheret.user _ name like ' % cs % '

我测试了100瓦的跳跃数据,效果一般,依然很慢。 原因:

名为selectrowidfromlui _ user _ basetwheret.user _ name like“% cs %”的sql运行得很快,而且速度相当快。

但是,放入selectcount(* ) from lui_user_base where rowid in ) )会降低效率。

4、selectcount(* ) fromLui_user_basetwhereinstr ) t.user_name,' cs ' ) 0

这个查询效果好,速度快,所以推荐这个。 我对oracle的内部机制不太了解,所以我只是对结果进行了说明。 真不好意思啊。

5、有人告诉我要使用全文索引。 看到了。 虽然步骤很麻烦,但是是个好方法。 留着备用的。

3358 sandish.itpub.net/post/4899/464369

要全文搜索cmng_custominfo表中的地址字段,请执行以下步骤:

1,需要在oracle9201中创建分词的内容:

比根

CTX _ DDL.create _ preference (SMS _ address _ lexer ),CHINESE_LEXER );

- CTX _ DDL.create _ preference (' my _ lexer ',' chinese_vgram_lexer ' ); 不需要

结束;

2、创建全文搜索:

createindexinx _ custom info _ addr _ docsoncmng _ custom info (地址) indextypeisctxsys.context parameters (lexersmars

3、咨询时使用:

slect * fromc mng _ custominfowherecontains (地址,'金色新城') 1;

4、需要定期同步和优化:

同步根据新记录的文本内容更新全文索引。

比根

CTX _ DDL.sync _ index (inx _ custom info _ addr _ docs );

结束;

优化:根据删除的记录删除全文索引中的垃圾

比根

CTX _ DDL.optimize _ index (inx _ custom info _ addr _ docs ',' FAST ' );

结束;

5、聘用job做好第四步工作:

1 )该功能需要利用oracle的作业功能进行

由于oracle9I默认情况下未启用作业功能,因此必须首先增加ORACLE数据库实例的作业配置参数。

job_queue_processes=5

重新启动oracle数据库服务和监听器服务。

2 )同步和优化

-同步同步:

可变作业编号;

比根

DMS_job.submit(:jobno,' CTX _ DDL.sync _ index (' inx _ custom info _ addr _ docs ' ' ' ) ) ) ) 、SYSDATE、' sysdate(1/24/4 ) );

commit;

结束;

-优化

可变作业编号;

比根

DMS_job.submit(:jobno,' CTX _ DDL.optimize _ index (' inx _ custom info _ addr _ docs ',' FULL ' ) )。SYSDATE、' SYSDATE 1';

commit;

结束;

其中,第一个作业的sysdate(1/24/4 )是指每15分钟同步一次,第二个作业的SYSDATE 1是指每隔一天进行一次完全优化。 具体的时间间隔取决于APP应用的需要

6 .索引重建

重建索引时,原始索引将被删除并重新生成。 需要时间。

重建的语法如下:

alterindexinx _ custom info _ addr _ docs rebuild;

根据一些家庭在互联网上的体验,oracle的索引重建速度也相对较快。 一个家庭说:

Oracle全文搜索的索引和维护速度远远快于ms sql server。 为笔者65万条记录的一个表编制索引只需要20分钟,同步一次只需要1分钟。

因此,也可以考虑用job的方法定期重建索引。

参考资料:

1,http://blog.csdn.net/yuren Jia/archive/2007/04/08/1556306.aspx

2,3358 topic.csdn.net/u/2008 01 17/23/34004 f4a-4989-47ef-8764-0 b 7e3BF 737 a7.html

3,http://ten we.com/tech/database/Oracle/200702/content _ 561 _4. shtml

4,http://www.knowsky.com/389357.html

5,http://jy DMT.itpub.net/post/468/195520

6,http://BBS.zdnet.com.cn/Archiver/tid-120474.html

7,http://BBS.51cto.com/Archiver/tid-26270.html

8,http://Oracle.chinaitlab.com/exploit ure/720104 _3. html

9,http://www.33 kuai.cn/html/shujuku/2008 01 26/5314 _2. html

10,http://www.xrss.cn/dev/database/20084218963.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。