|
工作过程中对oracle使用过程中遇到问题的解决方法进行汇总,方便后续自己查询。欢迎大家勘正
性能问题主要体现在数据查询没有在最长可接受时间范围内出结果,对应到数据库底层来讲,数据库内存进行大量的数据页交换,大量的磁盘读写。
针对这种情况,确认数据库的SGA大小,可以考虑将数据文件分盘存放(调整表空间数据文件的存放位置),降低磁盘的访问压力;调整数据表中的数据和索引存放至不同表空间;
首先,确认查询sql语句是否拼接编写,是否使用绑定变量的方式;
其次,查看验证查询sql语句多表组合编写方式,先过滤再组合;
接着,查看查询sql语句的执行计划,主要查看对表扫描的方式,以及对索引的执行情况
查询中用到的各种hint方式主要有以下形式:
/*+ALL_ROWS*/
:Uno,M-S4u0表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.ITPUB个人空间Yk3B3P ZJ/w
. /*+FIRST_ROWS*/
O0CfP_F3O0表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
0_8LGx&[G0f4w0
. /*+CHOOSE*/ITPUB个人空间`0Xbzf u1C
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
&HIQ$Q#@ fC3p b0表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;ITPUB个人空间#SI:F*B|{zRn
. /*+RULE*/
5i;b.g+pNj.v0表明对语句块选择基于规则的优化方法.
,@w_$R!dFJ3_UZ0
. /*+FULL(TABLE)*/
6~+L&Ui$_0表明对表选择全局扫描的方法.ITPUB个人空间~9Rf!F'Wh9H_r
. /*+ROWID(TABLE)*/
1GTBP#p0提示明确表明对指定表根据ROWID进行访问.
|
|
|