Oracle sql 性能优化调整(8/9/10/11/12/13)

本文介绍了Oracle SQL的性能优化方法,包括使用DECODE函数减少处理时间,整合简单数据库访问,删除重复记录,用TRUNCATE替代DELETE,多使用COMMIT以释放资源,以及计算记录条数的技巧。这些方法有助于提升查询效率,但需权衡可读性和性能。
摘要由CSDN通过智能技术生成

8.       使用DECODE函数来减少处理时间

使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.

例如:

   SELECT COUNT(*),SUM(SAL)

   FROMEMP

   WHERE DEPT_NO = 0020

   AND ENAME LIKE‘SMITH%’;

   SELECT COUNT(*),SUM(SAL)

   FROMEMP

   WHERE DEPT_NO = 0030

   AND ENAME LIKE‘SMITH%’;

你可以用DECODE函数高效地得到相同结果

SELECT COUNT(DECODE(DEPT_NO,0020,’X’,NULL)) D0020_COUNT,

        COUNT(DECODE(DEPT_NO,0030,’X’,NULL)) D0030_COUNT,

        SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL,

        SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SAL

FROM EMP WHERE ENAME LIKE ‘SMITH%’;

类似的,DECODE函数也可以运用于GROUP BY 和ORDER BY子句中.

9.       整合简单,无关联的数据库访问

如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)

例如:

 SELECT NAME

FROM EMP

WHERE EMP_NO = 1234;

 

 SELECT NAME

FROM DPT

WHERE DPT_NO =

Oracle 10g使PL/SQL又进了一步。本章将主要介绍10g中有用的新提示(到10gR2为止)以及在以前版本中继续有用的提示。一旦可以使用所有强有力的查询来监控您的系统,那么就有必要使它们自动化运行。PL/SQL除了可完成以上的工作外,同时还将提供强大而有效的数据包和可用于性能调整的过程。PL/SQL引擎处理所有的PL/SQL请求,并且将代码传递给Oracle去执行。当PL/SQL被传递给Oracle之后,通常是放置在Oracle的系统全局区(SGA)中,特殊情况下会放置在共享池内。在Oracle中,PL/SQL的源代码可以以过程、函数、数据包,或者触发器的形式被存储在数据库中。一旦这些对象以编译过的格式存储在数据库中,那么用户只要获得相应对象的执行特权就都可以使用任何的Oracle工具来执行这些对象。一旦开始执行对象,p-代码(可执行代码)将被加载到SGA共享池中,再由 Oracle执行。一个PL/SQL对象将会一直保存在SGA共享池里,直到根据最近最少使用(Least Recently Used,简写为LRU)算法将该对象设置为失效。因此,如果有任何程序需要调用对象,只要该对象还没有失效,它就不必被重新加载到SGA共享池中。所以,Oracle通常是查询SGA共享池(效率很高)中的对象,而不是到磁盘(效率较低)上加载对象。如何使用PL/SQL更好地调整SQL很有可能就是影响性能的最大驱动因素,当然,本章节中也将介绍其他的调整方案。本章的第一部分着重介绍对PL/SQL的理解和定位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值