根据Oracle学习之性能优化(二)游标中的描述,我们知道如下两条语句是不共享的。select*fromempwhereempno=7698;
select*fromempwhereempno=7566;这样就造成每次执行用户的查询都要进行硬解析,但是我们知道,其他这两个语句的执行计划应该是相同。那么有什么方法能避免不必要..
分类:
数据库 时间:
2015-08-18 19:46:05
阅读次数:
146
-如何确定系统中是否存在绑定变量的情况:首先创建一个表,用于存放整理过得数据:create table t1 as select sql_text from v$sqlarea;----V$SQLAREA本视图持续跟踪所有shared pool中的共享cursor,--在shared pool中的每...
分类:
数据库 时间:
2015-08-16 15:07:49
阅读次数:
139
1.?sql 注入的原因 sql注入的原因,表面上说是因为 拼接字符串,构成sql语句,没有使用 sql语句预编译,绑定变量。 但是更深层次的原因是,将用户输入的字符串,当成了 “sql语句” 来执行。 比如上面的 String...
分类:
数据库 时间:
2015-08-14 11:58:29
阅读次数:
170
业务人员告诉我某系统磁盘IO持续高达300MB/s,系统平台为AIX,遂 topas 查看果然如此。
用下面脚本到Oracle数据库中看了一下:
SELECT Disk_Reads DiskReads, Executions, SQL_ID, SQL_Text SQLText,
SQL_FullText SQLFullText
FROM
(
SELECT Disk_Reads,...
分类:
其他好文 时间:
2015-08-06 16:53:59
阅读次数:
203
在分页查询时,oracle绑定变量的使用优化var a numbervar b numbervar c numberexec :a:=0exec :b:=10exec :c:=0set serveroutput off;alter session set statistics_level=all;S...
分类:
其他好文 时间:
2015-07-27 18:30:55
阅读次数:
107
--由于生产环境执行的sql变化较快,版本发布比较频繁,造成sql的执行计划不是很稳定,经常会有一些性能很查的sql出现
--对于这些sql,我们可以使用sql_plan_baseline对执行计划进行绑定,从而使执行计划固定下来
--前提是sql最好使用绑定变量,就算有的没有绑定变量,确定字段的值不会改变才行,因为是针对sql_id进行的绑定,如果sql文本改变,绑定也就无意义了
具体步骤...
分类:
数据库 时间:
2015-06-26 11:03:06
阅读次数:
181
这两天和广分的兄弟看了一个问题,比较有意思,过程也比较曲折。。。问题现象:1. 11g的库,话说有一个应用程序新上线,应用中使用了绑定变量的方式执行一条简单的SQL,例如select a from b where c = :x,c列是该表复合主键的前导列,表定义是varchar2类型,从spotlight监控看这条SQL的执行计划是全表扫描,一次执行要1个小时,这张表是运行很久的引用分区表,数据量...
分类:
其他好文 时间:
2015-05-29 06:14:52
阅读次数:
281
查询Oracle sql语句中绑定变量值的方法...
分类:
数据库 时间:
2015-05-01 23:54:09
阅读次数:
190
1)LibraryCache的命中率公式:LibraryCacheHitRatio=SUM(PINHITS)/SUM(PINS)SELECTSUM(PINHITS)/SUM(PINS)FROMV$LIBRARYCACHE;命中率不能低于99%,否则需要考虑是否受共享池大小,绑定变量,cursor_sharing等因素的影响。SELECTNAME,VALUEFROMV$PARAMETERWHERENAME=‘cursor_sh..
分类:
数据库 时间:
2015-04-22 18:45:36
阅读次数:
192