中易网

Oracl优化

答案:1  悬赏:40  
解决时间 2021-04-28 08:22
  • 提问者网友:無奈小影
  • 2021-04-27 09:38
Oracl数据库如何优化!
最佳答案
  • 二级知识专家网友:心与口不同
  • 2021-04-27 10:13

实际中性能优化最根本的出现点也都集中在IO,
这是影响性能最主要的方面,由系统中的等待去发现Oracle库中的不足、
操作系统某些资源利用的不合理是一个比较好的办法


1.检查操作系统是否存在IO的问题?
当你的系统存在IO的问题,可以从以下几个方面解决


联系相应的操作系统的技术支持对这方面进行优化,
比如hp-ux在划定卷组时的条带化等方面。


查找Oracle中不合理的sql语句,对其进行优化


对Oracle中访问量频繁的表除合理建索引外,
再就是把这些表分表空间存放以免访问上产生热点,
再有就是对表合理分区


然后就是建索引.


然后确定你的sql语句使用索引


最后多使用共享语句


2、关注一下内存。
划给Oracle使用的内存不要超过系统内存的1/2,一般保在系统内存的40%为益。


为系统增加内存


如果你的连接特别多,可以使用MTS的方式


打全补丁,防止内存漏洞。


3、如何找到点用系用资源特别大的Oracle的session及其执行的语句。


sql分析一下,看一下它的执行计划是否走索引,
对其优化避免全表扫描,以减少IO等待,从而加快语句的执行速度。


4、另一个有用的脚本:查找前十条性能差的sql.
SELECt * FROM
(select PARSING_USER_ID,EXECUTIONS,SORTS,
COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea
order BY disk_reads DESC )where ROWNUM<10 ;


性能优化:
1.首先我会去检查表的结构是否合理,因为采用多表查询的时候,
看主外键的引用关系是否适当.如果不适当则重新设置表结构.
如果是应用中的系统,则不需要更改表的字段,只更改主外键关系.
如果数据库中有较多的数据,还应采用索引提高查询效率.



比如利用index对查询进行优化,(index可以避免对表的一个全面扫描,
当你以某个字段建立一个索引的时候,数据库就会生成一个索引页,
索引页不单单保存索引的数据,还保存了索引在数据库的具体的物理地址[rowid],
能够很快的定位查找到要找的记录)
建立索引后,select会快,但是会影响insert,delete,update,因为要对rowid进行维护.
id like '00%'会影响查询速度,因为不是精确定位,所以会对索引页进行全面扫描.


心得:
如果表的列很少,不适合建索引.
当执行过多次的insert,delete,update后,会出现索引碎片,
影响查询速度,我们应该对索引进行重组.


左,右连接:
左连接左边是主表,+在右边,主表所有字段都会列出来,
如果不符合条件的就会检索出null;
右连接相反.
左,右连接在性能上是应该没有差别的,
因为null空值是不会保存在索引页中的.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息