Oracle查询的效率有关问题
Oracle查询的效率问题
现有一个Autotips控件(类似谷歌,百度查询。可在OSChina搜到这个组件),客户想要将其实现到自己的系统中。这里面有一种数据库模式,是即时搜索的。也就是每次录入文字都与数据库进行交互。
现在我已经为客户整合了这个组件。但是现在客户要求我对这个组件对数据库性能的影响做一个评估。但是由于我对ORACLE这块的性能优化等方面知之甚少。所以从网上找了两段SQL脚本。以及抓取了一个小时内的awr报告。可是因为相关知识太少,不知其所以然,因此这个报告不能描述的使人信服。所以来这里请教一下大家。给讲解一下。
代码1:查询出来的结果集rds_exec_ratio均为0
代码2:查询不出结果集
参照网上说明,说是可以查询最占性能的语句和占用内存的脚本。
而后,我查看了一下awr的报告。对于关键性的'SELECT comcname,comcode FROM prpdcompany where%并没有在AWR报告中找到,是否说明他的影像可以忽略不计呢?
------解决方案--------------------
那个,有些操作,不宜,交给sql去做。
你可以把查询出来的结果,再处理,这样可以减轻select的负担。
------解决方案--------------------
根据Oracle的解析,全部大写或者小写,你可以建立索引,在用到< 的地方尽量用 <=
现有一个Autotips控件(类似谷歌,百度查询。可在OSChina搜到这个组件),客户想要将其实现到自己的系统中。这里面有一种数据库模式,是即时搜索的。也就是每次录入文字都与数据库进行交互。
现在我已经为客户整合了这个组件。但是现在客户要求我对这个组件对数据库性能的影响做一个评估。但是由于我对ORACLE这块的性能优化等方面知之甚少。所以从网上找了两段SQL脚本。以及抓取了一个小时内的awr报告。可是因为相关知识太少,不知其所以然,因此这个报告不能描述的使人信服。所以来这里请教一下大家。给讲解一下。
代码1:查询出来的结果集rds_exec_ratio均为0
SELECT *
FROM (SELECT b.username username,
a.disk_reads
/ DECODE (a.executions, 0, 1, a.executions) rds_exec_ratio,
a.sql_text STATEMENT
FROM v$sqlarea a, dba_users b
WHERE a.parsing_user_id = b.user_id AND b.username = 'DEVHXYW'
ORDER BY rds_exec_ratio DESC)
WHERE STATEMENT LIKE 'SELECT comcname,comcode FROM prpdcompany where%' AND ROWNUM < 11
ORDER BY rds_exec_ratio DESC
代码2:查询不出结果集
select sql_text,operation_type,policy,(last_memory_used/1024/1024),
last_execution,last_tempseg_size
from v$sql i,v$sql_workarea a
where i.hash_value=a.hash_value
and sql_text LIKE 'SELECT comcname,comcode FROM prpdcompany where%'
参照网上说明,说是可以查询最占性能的语句和占用内存的脚本。
而后,我查看了一下awr的报告。对于关键性的'SELECT comcname,comcode FROM prpdcompany where%并没有在AWR报告中找到,是否说明他的影像可以忽略不计呢?
------解决方案--------------------
那个,有些操作,不宜,交给sql去做。
你可以把查询出来的结果,再处理,这样可以减轻select的负担。
------解决方案--------------------
根据Oracle的解析,全部大写或者小写,你可以建立索引,在用到< 的地方尽量用 <=