oracle怎么查看效率,oracle怎么查看sql性能

如何查看oracle开销,或是sql的执行效率

1:在plsql中按F5可以看SQL的执行计划

射阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

2:查系统视图可以查看某个SQL的实际消耗

oracle查询效率最好的表

oracle查询效率最好的表是DrivingTable。因为ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表DrivingTable将被最先处理,所以只要默认排序,DrivingTable就是效率最高的表。

oracle怎么查看sql语句效率

最直接的办法就是打开sql_trace:

alter

session

set

sql_trace=true;(要dba权限)

然后到服务器上追踪文件里面查看这个session执行了哪些sql,不过这是session级的.

也可以使用系统级的.

对系统性能有影响

如何提高oracle模糊查询的性能?

1、使用两边加‘%’号的查询,Oracle是不通过索引的,所以查询效率很低。

例如:select count(*) from lui_user_base t where t.user_name like '%cs%';

2、like '...%'和 like'%...'虽然走了索引,但是效率依然很低。

3、有人说使用如下sql,他的效率提高了10倍,但是数据量小的时候

select count(*) from lui_user_base where rowid in (select rowid from lui_user_base t where t.user_name like '%cs%')

我拿100w跳数据做了测试,效果一般,依然很慢,原因:

select rowid from lui_user_base t where t.user_name like '%cs%'   这条sql执行很快,那是相当的快,但是放到select count(*) from lui_user_base where rowid in()里后,效率就会变的很慢了。

4、select count(*) from lui_user_base t where instr(t.user_name,'cs') 0

这种查询效果很好,速度很快,推荐使用这种。因为我对oracle内部机制不是很懂,只是对结果做了一个说明。

5、有人说了用全文索引,我看了,步骤挺麻烦,但是是个不错的方法,留着备用:

对cmng_custominfo 表中的address字段做全文检索:

1,在oracle9201中需要创建一个分词的东西:

BEGIN

ctx_ddl.create_preference ('SMS_ADDRESS_LEXER', 'CHINESE_LEXER');

--ctx_ddl.create_preference ('my_lexer', 'chinese_vgram_lexer'); 不用

end;

2,创建全文检索:

CREATE INDEX INX_CUSTOMINFO_ADDR_DOCS ON cmng_custominfo(address) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('LEXER SMS_ADDRESS_LEXER');

3,查询时候,使用:

select * from cmng_custominfo where contains (address, '金色新城')1;

4,需要定期进行同步和优化:

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

begin

ctx_ddl.sync_index('INX_CUSTOMINFO_ADDR_DOCS');

end;

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

begin

ctx_ddl.optimize_index('INX_CUSTOMINFO_ADDR_DOCS', 'FAST');

end;

5,采用job做步骤4中的工作:

1)该功能需要利用oracle的JOB功能来完成

因为oracle9I默认不启用JOB功能,所以首先需要增加ORACLE数据库实例的JOB配置参数:

job_queue_processes=5

重新启动oracle数据库服务和listener服务。

2)同步 和 优化

--同步 sync:

variable jobno number;

BEGIN

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''INX_CUSTOMINFO_ADDR_DOCS'');',

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

commit;

END;

--优化

variable jobno number;

begin

DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''INX_CUSTOMINFO_ADDR_DOCS'',''FULL'');', SYSDATE, 'SYSDATE + 1');

commit;

END;

其中, 第一个job的SYSDATE + (1/24/4)是指每隔15分钟同步一次,第二个job的SYSDATE + 1是每隔1天做一次全优化。具体的时间间隔,可以根据应用的需要而定。

6,索引重建

重建索引会删除原来的索引,重新生成索引,需要较长的时间。

重建索引语法如下:

ALTER INDEX INX_CUSTOMINFO_ADDR_DOCS REBUILD;

据网上一些用家的体会,oracle重建索引的速度也是比较快的,有一用家这样描述:

Oracle 的全文检索建立和维护索引要比ms sql server都要快得多,笔者的65万记录的一个表建立索引只需要20分钟,同步一次只需要1分钟。

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

如何检查oracle数据库性能

oracle的性能判断需要综合数据库的多个运行指标来判断:

1、进程数量和占用cpu:这个主要看有没有长时间占用cpu的进行。通常会判断大出sql,需要优化;这个可以用执行计划或者awr报告查看;

2、内存占用:主要用系统命令查看ora_占用和系统总内存的比例,swap的使用率;通常swap使用率低就没事;这个主要使用系统命令;

3、磁盘占用率:防止磁盘空间不足,需要的主要在系统和用户表空间、RMAN等操作上;这个主要使用系统命令;RMAN命令查看

如何查看oracle语句执行效率

查询一和二都是全表内查询,一中嵌套子查询,还是用的In操作符,效率较低。像单表的这种查询二是最快的,大部分情况oracle内置的东西,效率都不低的,如果还想提交效率,可在fclass加个索引


标题名称:oracle怎么查看效率,oracle怎么查看sql性能
网址分享:http://ybzwz.com/article/dsgdggj.html