oracle 性能优化 常用,Oracle數據庫常用性能優化

1、 查兩張以上表時,把記錄少的放在右邊

2、 WHERE子句中的連接順序

ORACLE采用自上而下的順序解析WHERE子句,根據這個原則,那些可以過濾掉最大數量記錄的條件應寫在WHERE子句最后。

例如:查詢員工的編號,姓名,工資,部門名

如果emp.sal>1500能過濾掉半數記錄的話,

selectemp.empno,emp.ename,emp.sal,dept.dname

from emp,dept

where (emp.deptno =dept.deptno) and (emp.sal > 1500)

3、 SELECT子句中避免使用*號

ORACLE在解析的過程中,會將*依次轉換成所有的列名,這個工作是通過查詢數據字典完成的,這意味着將耗費更多的時間

4、 避免對大表進行無條件或無索引的的掃描

5、 清空表時用TRUNCATE替代DELETE

6、 盡量多使用COMMIT;因為COMMIT會釋放回滾點

7、 用索引提高查詢效率,善用索引

避免在索引列上使用NOT;因為Oracle服務器遇到NOT后,他就會停止目前的工作,轉而執行全表掃描。

避免在索引列上使用計算;WHERE子句中,如果索引列是函數的一部分,優化器將不使用索引而使用全表掃描,這樣會變得慢

例如,SAL列上有索引,

低效:

SELECT EMPNO,ENAME

FROM EMP

WHERE SAL*12 > 24000;

高效:

SELECT EMPNO,ENAME

FROM EMP

WHERE SAL > 24000/12;

8、字符串型,能用=號,不用like;=號表示精確比較,like表示模糊比較

9、 用 >= 替代 >

低效:

SELECT * FROM EMPWHERE DEPTNO > 3

首先定位到DEPTNO=3的記錄並且掃描到第一個DEPT大於3的記錄

高效:

SELECT * FROM EMPWHERE DEPTNO >= 4

直接跳到第一個DEPT等於4的記錄

10、   用IN替代OR

select * from emp where sal =1500 or sal = 3000 or sal = 800;

select * from emp where sal in (1500,3000,800);

11、   用exists代替in;not exists代替 notin

not in字句將執行一個內部的排序和合並,任何情況下,not in是最低效的,子查詢中全表掃描;表連接比exists更高效

12、   用UNION-ALL 替換UNION

當SQL語句需要UNION兩個查詢結果集合時,這兩個結果集合會以UNION-ALL的方式被合並, 然后在輸出最終結果前進行排序. 如果用UNION ALL替代UNION,這樣排序就不是必要了. 效率會因此得到提高。

13、   避免使用耗費資源的操作

帶有DISTINCT,UNION,MINUS,INTERSECT的SQL語句會啟動SQL引擎 執行耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執行兩次排序. 通常,帶有UNION, MINUS , INTERSECT的SQL語句都可以用其他方式重寫。

最后:同樣的操作有些時候可以在程序上處理的就程序上處理,畢竟在內存中的執行速度比在硬盤上執行要高非常多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在cmd命令行中查看、修改、删除与添加环境变量

首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方法目前没试验过…

linux进程实际内存大小,Linux进程内存用量分析之堆内存篇

本文将介绍几种内存泄漏检测工具,并通过实际例子介绍一种分析堆内存占用量的工具和方法,帮助定位内存膨胀问题。背景进程的内存管理是每一个开发者必须要考虑的问题,对于C程序进程来说,出现问题很多情况下都与内存挂钩。进程崩溃问…

spring处理循环依赖时序图_Maven依赖管理系统

【思考】首先,简单讲述一下为什么需要这样一个系统?不知道大家有没有思考,在一个可能有上千个模块/产品的公司,对于模块之间有较多相互依赖的情况,以下问题该如何解决:我们把一个生命周期结束的组件移除之后…

好友消息和群消息区别

好友消息类型&#xff1a;$message is 空军建军节群消息类型: $message is 33623fd04e4001687be9b5d85b1e2958950adc947c2398c59225d8904ff98bea:<br/>hhhgf转载于:https://www.cnblogs.com/zhaoyangjian724/p/6200407.html

linux入门命令菜鸟,经典:Linux菜鸟入门级命令大全

经典&#xff1a;Linux菜鸟入门级命令大全1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看ls相关的用法注&#xff1a;按q键或者ctrlc退出&#xff0c;在linux下可以使用ctrlc终止当前程序运行。2. ls 查看目录或者文件的属*&#xff0c;列举出任一目录下面的文…

java 获取本机ip_linux获取本机IP

获取网口名称直接输出所有的网口信息ifconfig | grep -v ^ | grep -v ^bashifconfig | awk -F: /^[^ ]/{print$1}ip a | awk -F": " /^[^ ]/{print$2}获取所有的IP直接输出所有的IPifconfig | grep inet | awk {print $2}ip a | awk /inet /{print$2} | sed s#/.*#…

python语言基本控制结构有哪些-以下不属于Python语言控制结构的是()

【单选题】以下程序的输出结果是() x10 y0 if(x>5)or(x/y>5): print("Right") else: print("Wrong")(1.0分) 【单选题】以下代码的输出结果是() def young(age): if 25<age<30: print("年轻有前途") elif age<25: print("参…

手持移动扫描终端 PDA移动开单系统-批发零售管理

条码数据采集器通过扫描商品条码移动开单&#xff0c;实现便携式办公&#xff0c;伴随式销售&#xff0c;是我公司的一款最新便携式开单配套产品&#xff0c;采集器能通过WIFI无线局域网、GPRS互联网直接与主机连接&#xff0c;让公司业务人员能随时随地了解公司产品信息&#…

Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...

linux上给其他在线用户发送信息(wall, write, talk, mesg)2018-11-30设置登录提示/etc/motd文件的用途/etc/motd即message of today(布告栏信息)&#xff0c;每次用户登录时&#xff0c;/etc/motd文件的内容会显示在用户的终端。系统管理员可以在文件中编辑系统活动消息&#x…

sd卡测速工具_拍完照回家发现SD卡损坏,拯救你的照片就用这个办法!

SD卡可以说是目前相机存储的主要工具&#xff0c;一旦拍照结束后出了问题&#xff0c;那可是最头疼的事情。我昨天就碰到了这样奇怪的事情&#xff0c;拍照回来正要导出数据&#xff0c;发现电脑系统提示要格式化存储卡&#xff0c;经过几次插拔发现依然不能识别。如果按照提示…

linux中vim如何替换字符串,vim中替换字符串的方法有哪些

vim中替换字符串的方法有哪些发布时间&#xff1a;2020-06-04 11:41:18来源&#xff1a;亿速云阅读&#xff1a;238作者&#xff1a;Leah这篇文章为大家带来有关vim中替换字符串的方法介绍&#xff0c;如果在日常学习或工作遇到这个问题&#xff0c;希望大家通过这篇文章的几种…

ELK Stack (1) —— ELK + Redis安装

ELK Stack (1) —— ELK Redis安装 摘要 安装Elasticsearch、Logstash、Kibana与Redis以实现一个日志收集平台 版本 elasticsearch版本: elasticsearch-2.2.0 logstash版本: logstash-2.2.2 kibana版本: kibana-4.3.1-darwin-x64 jdk版本: jdk1.8.0_65 内容 目标架构 Logstash…

智能机器人路径规划及代码_AI割草机器人用ML+传感器自动规划路径

作者&#xff1a;DIGITIMES谢明珊Graze Mowing发表全新自动割草机器人&#xff0c;可针对中大型商用空间提高景观维护效率&#xff0c;吸引来自世界各地的高尔夫球场以及景观维护公司的询问&#xff0c;已累积1,900多万美元预购订单和商业合约&#xff0c;可望为劳力密集的造景…

request.get... getHeader 能取得的信息 参数

转载▼StringTokenizer st new StringTokenizer(agent,";"); st.nextToken(); //得到用户的浏览器名 String userbrowser st.nextToken(); System.out.println(userbrowser); //得到用户的操作系统名 String useros st.nextToken(); System.out.println(useros)…

同一个浏览器打开不同端口的程序登录_【BI报表制作】单点登录与个性化开发...

无法正常登录&#xff1f;想将报表内默认的奥威BI软件logo换成自己家的&#xff1f;想连接Excel数据源做可视化&#xff1f;想实现单点登录&#xff08;公开分享&#xff09;&#xff1f;本期的实用课程OurwayBI单点登录与个性化开发可不要错过了。修改端口奥威BI软件默认的端口…

linux使用u盘的过程是,图文详解Linux下使用U盘的方法

习惯了在Windows系统下即插即用U盘&#xff0c;换成Linux系统下你可能就不会使用了。为什么这么说呢?因为Linux系统U盘被视为SCSI设备&#xff0c;因此不能直接使用&#xff0c;还需要我们手动进行相应的设置&#xff0c;下面这篇教程就专门为第一次在Linux下使用U盘的朋友们而…

打印机怎么扫描到电脑_【柯美C360扫描怎么用教程】打印机怎么扫描

【C360扫描怎么用教程】打印机怎么扫描各个品牌的复印机的扫描功能使用方法大同小异&#xff0c;主要步骤就是将扫描原件放置好&#xff0c;选择单面或双面、文件类型、清晰度等&#xff0c;然后按开始就可以扫描了&#xff0c;下面广州柯镁办公设备以柯尼卡美能达复印机C360/C…

自己做站点(一) 从头至尾实现一个企业站的速成

网上随便搜一下。就会发现“xx天学会站点设计”的教程数不胜数&#xff0c;这就说明站点开发并不像非常多人觉得的那么难&#xff0c;从今天開始跟大家一起完毕一个企业站的搭建以及域名申请以及上线的所有过程&#xff0c;希望对大家有所帮助。终于的效果如这个站点所看到的。…

代码证年检所需资料_上海注销小规模公司所需材料及流程

大多数企业分类为&#xff1a;一般人和小规模。公司经营当中如果遇到问题&#xff0c;不再经营的时候&#xff0c;可选择注销。但是&#xff0c;一般人公司注销和小规模注销又有些许的不同。申与城企业擅长各种公司注销。今天就和大家聊一聊新小规模公司注销流程&#xff0c;以…

linux 多个select,Linux select()和多个套接字的FIFO排序?

您可以使用IP_PKTINFO获取数据包发送到的多播组的地址 - 即使套接字订阅了一堆多播组。有了这个&#xff0c;您将按顺序获取数据包并按组地址过滤。请参阅以下示例&#xff1a;#include #include #include #include #include #include #include #include #include #include #in…