1.识别'低效执行'的SQL语句
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC;
2.先查询后取结果集
举例:模仿SQL Server实现Top x从结果集获取指定数量(x)的数据条数 select top 1 f from A;
select f from (select f from A where f=0) where rownum <= 1;
3.WHERE子句的顺序约定
表连接子句必须写在其它WHERE子句之前,那些可以过滤掉最大数量记录的条件建议写在WHERE子句的末尾。
原因:ORACLE采用自下而上的顺序解析WHERE子句
4.SELECT子句中避免使用星号(*)
ORACLE在解析的过程中, 会将星号依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.
5.删除重复记录
DELETE FROM A WHERE A.ROWID > (SELECT MIN(B.ROWID) FROM B WHERE B.id = A.id);
6.用EXISTS替换DISTINCT
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换
例如-->
低效: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_NO = E.DEPT_NO 高效: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT ‘X' FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO);
EXISTS 使查询更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果.
7.WHERE子句中, 如果索引列所对应的值的第一个字符由通配符(WILDCARD)开始, 索引将不被采用.
8.基础表的选择
基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问). 根据优化器的不同, SQL语句中基础表的选择是不一样的.
如果用CBO (COST BASED OPTIMIZER),优化器会检查SQL语句中的每个表的物理大小,索引的状态,然后选用花费最低的执行路径.
如果用RBO (RULE BASED OPTIMIZER) , 并且所有的连接条件都有索引对应, 在这种情况下, 基础表就是FROM 子句中列在最后的那个表.
9. 避免在索引列上使用IS NULL和IS NOT NULL
避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 .
10.WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.
11.内部发生的类型转换,索引将失效!
为了避免ORACLE对字段进行隐式的类型转换, 最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型.
12.‘!=' 将不使用索引. 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.
13.‘||'是字符连接函数. 就象其他函数那样, 停用了索引.
14.‘+'是数学函数. 就象其他数学函数那样, 停用了索引.
15.下面的例子中,相同的索引列不能互相比较,这将会启用全表扫描.
不使用索引:
SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAME = NVL(:ACC_NAME,ACCOUNT_NAME);
使用索引:
SELECT ACCOUNT_NAME, AMOUNT FROM TRANSACTION WHERE ACCOUNT_NAME LIKE NVL(:ACC_NAME,'%');
如果一定要对使用函数的列启用索引, ORACLE新的功能: 基于函数的索引(Function-Based Index) 也许是一个较好的方案.
CREATE INDEX EMP_I ON EMP (UPPER(ename)); /*建立基于函数的索引*/ SELECT * FROM emp WHERE UPPER(ename) = ‘BLACKSNAIL'; /*将使用索引*/
16.? 手工创建快照
SQL>EXEC dbms_workload_repository.create_snapshot ? 产生AWR报告 SQL>@$ORACLE_HOME/rdbms/admin/awrrpt.sql
17.在 Alter table 或 Create table 后加 cache 子句来使表成为缓存表(不被请出)
发表评论
文章已被作者锁定,不允许评论。
-
DB2 学习笔记
2012-03-19 12:28 0ORACLE CREATE TABLE COLUMN DEFA ... -
Oracle Session
2010-12-14 15:50 760select sid,user,status,machine, ... -
9i新特性之Flashback Query的应用-------------针对DML误操作的恢复【转】
2010-12-09 10:07 594用dbms_flashback包 dbms_flashb ... -
ORACLE【Undo Tablespace】
2010-12-08 15:28 986--查看unco tablespace使用情况的语句 SE ... -
oracle asm学习
2010-12-08 11:11 9001.什么是ASM ASM全称 ... -
Oracle学习之路【六】确定当前ORACLE的性能瓶颈
2010-12-03 13:57 802确定当前ORACLE的性能瓶颈 首先,利用V$SYSTEM_ ... -
Java排序【转】
2010-12-03 13:46 765=============================== ... -
Oracle学习之路【二】
2010-12-03 13:43 774=============================== ... -
Oracle学习之路【一】
2010-12-03 13:32 729============================= ... -
染指内存数据库【一】
2010-10-25 13:35 923IBM solidDB 可以部署为一个独立的内存数据库 ... -
ORACLE索引表学习
2010-08-18 16:45 1297索引表与标准表的差异 一、索引表中的ROW ... -
ORACLE零散乱记
2010-06-15 15:15 964PGA_AGGREGATE_TARGET = (物理内存大小 ... -
ORACLE10g 自动SGA管理(一)
2010-01-23 19:33 923SGA -- 数据库块缓冲高速缓存 (db_cache_ ... -
ORACLE10g 闪回表学习
2010-01-23 19:20 638当表被Drop掉后,表及其相关对象被放在一个称 ... -
ORACLE10g ASSM 学习(二)
2010-01-20 21:14 728创建存储过程show_space create or ... -
ORACLE10g ASSM 学习(一)
2010-01-20 20:51 768创建存储过程show_space_assm CREAT ... -
ORACLE10g学习笔记(六)
2010-01-17 23:06 7681. 自动碎片整理 Coalesce ... -
ORACLE10g学习笔记(五)
2010-01-17 19:48 5781. 检查Oracle的进程 $ ... -
ORACLE10g学习笔记(四)
2010-01-17 19:41 7301. 实时查询最耗CPU资源的SQL语句 1. 先通过top ... -
ORACLE10g学习笔记(三)
2010-01-17 17:40 7481. 数据库字符集 通过AL ...
相关推荐
1、文件内容:abrt-devel-2.1.11-60.el7.centos.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/abrt-devel-2.1.11-60.el7.centos.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
房地产公司绩效管理办法(精品)
网卡驱动-r8169-linux-官方驱动,能翻墙的也可以去外网下,这里只是赚个积分,本人有时候也需要下载别人的资源,望理解,外网地址:https://www.realtek.com/Download/ToDownload?type=direct&downloadid=3378
基于非线性干扰观测器的自适应滑模反演控制策略在机械臂模型中的应用:神经网络MATLAB仿真研究,(文献+程序)基于非线性干扰观测器的自适应滑模反演控制 机械臂模型 神经网络 matlab仿真 滑膜 带原班文献 ,关键词:非线性干扰观测器; 自适应滑模反演控制; 机械臂模型; 神经网络; MATLAB仿真; 滑膜控制; 原班文献,基于非线性干扰观测器的机械臂自适应滑模反演控制:matlab神经网络仿真及原班文献解读
"电力电子方向入门学习:单相PWM整流无桥图腾柱pfc技术Simulink仿真实践,电压调控及优化性能探索",单相PWM整流无桥图腾柱pfc,simulink仿真 输入电压220v有效值 输出电压500v纹波在1%以内 功率因数为1 电流THD<5% 开关频率20k 可作为电力电子方向入门学习~~ ,关键词:单相PWM整流;无桥图腾柱PFC;Simulink仿真;输入电压220V;输出电压500V;纹波;功率因数1;电流THD<5%;开关频率20k;电力电子方向入门学习。,"单相PWM整流桥技术:无桥图腾柱PFC的Simulink仿真入门学习"
员工晋升申请表
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
FPGA实现CameraLink相机Base模式解码与HDMI高清视频输出方案,FPGA采集CameraLink相机Base模式 本文详细描述了FPGA采集CameraLink相机Base模式解码输出的实现设计方案,思路是这样的,CameraLink相机输入到FPGA板子,FPGA使用内部逻辑资源实现LVDS视频解码,解析出像素时钟、行同步信号、场同步信号、数据有效信号、以及像素数据,然后将视频转为Xilinx的AXI4-Sream的视频流,经VDMA送入DDR3缓存,然后读取出视频再经过AXI4-Sream to Video Out通过HDMI接口输出视频,这是Xilinx图像处理常用的套路,可谓相当精巧的方案 ,核心关键词:FPGA; CameraLink相机; Base模式; LVDS视频解码; 像素时钟; 同步信号; 像素数据; Xilinx AXI4-Sream; VDMA; DDR3缓存; HDMI接口视频输出。,"FPGA实现CameraLink相机Base模式视频解码与输出设计"
各岗位职责及操作
内容概要:本文介绍了稳定视频人脸修复(Stable Video Face Restoration, SVFR)方法,这是一个为解决一般化视频人脸修复(Generalized Video Face Restoration, GVFR)而设计的统一框架。作者针对现有技术未能有效处理时间一致性和运动伪影的问题提出SVFR方法,并通过实验展示其相较于单任务模型,在盲脸修复、颜色化和修补方面的性能显著提升。GVFR整合了三种子任务(BFR, colorization, 和 inpainting),并通过联合框架提高了训练效果,利用了预训练稳定视频扩散模型(SVD)。文中还引入了统一面部修复框架来确保跨子任务的一致特征表征,并提出了一种新的面部先验损失函数,通过面部特征点辅助修复过程并提高稳定性。 适用人群:适用于从事计算机视觉特别是视频识别和图像处理的研究者和技术工程师。 使用场景及目标:①用于高质量的人脸恢复,特别是在老旧电影或低质量监控录像等场合;②增强人脸识别准确性,确保长时间视频中身份一致性;③应用于需要真实感强的画面处理环境如在线会议直播。 其他说明:这项工作中提出的SVFR不仅解决了当前的技术难题,还为未来相关领域的研究和发展提供了重要参考价值,尤其体现在它所建立的新范例上,即如何通过多任务监督从有限数据集中获得更好的表现。
2025年义务教育新课程标准生物(2022年版)必考试题含答案.docx
直播带货销售业绩表
内容概要:本文详细记录了一个完整的基于Hadoop平台的WordCount任务实现过程,从环境准备到最终成果展示,涵盖了关键步骤的具体操作流程。首先介绍了创建所需文件夹结构并上传原始文本文件至HDFS;其次详述了构建Maven项目来组织相关源代码,以及定义Map(映射)、Combine(组合)、Reduce(归约)三个重要的处理环节所对应的程序逻辑;然后阐述了项目打包、分发过程及远程节点上部署运行该作业的整体思路;最后,通过访问Web界面确认最终生成的统计报告保存路径及其部分内容,验证任务成功完成。 适用人群:适用于初学者及有一定经验的数据工程师或研究人员,特别是那些希望快速掌握MapReduce模型实际应用技巧的人士。 使用场景及目标:此教程可以帮助用户深入了解Apache Hadoop生态系统内的MapReduce计算范式的运作机制。它演示了如何借助命令行工具高效管理和查询大规模非结构化或半结构化的数据集,从而支持后续更加复杂的分析任务的需求探索。此外,对于正在寻找入门级实战演练的学习者而言,这也是非常有价值的练习资料,既包括理论概念的学习也提供了充分的机会来进行动手实验。 其他说明:为了确保最佳实践效果,请注意跟随文中指引逐步尝试每一个新概念的应用,尤其是在编码部分,尽量不要跳过任何一步骤,并积极查阅官方文档或其他权威参考资料作为补充材料,遇到困难时也不必气馁,多做几次重复试验往往能带来意外收获。同时考虑到性能优化的可能性,可以在适当时候调整配置参数,比如增大堆栈容量或者更改块副本数目等。
2025义务教育历史新课程标准(2022版)必考题库含答案.docx
显示效果视频
员工晋升管理规定
2025年义务教育英语课程标准(2022版)必考题库及答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
风储联合系统:直驱风机与储能技术的完美融合,创新能源存储解决方案,风储联合系统 直驱风机加储能系统 ,核心关键词:风储联合系统; 直驱风机; 储能系统; 联合系统。,"风储联动:直驱风机与储能系统的绿色能源集成"
双馈风力发电机模型研究:Simulink中的完美波形效果展示,涵盖DFIG模型对风速变化与电流电压特性的精准模拟。,双馈风力发电机模型研究(DFIG),simulink模型。 给定风速变化,电流与电压等波形效果完美。 ,核心关键词:双馈风力发电机模型研究(DFIG); Simulink模型; 风速变化; 电流波形; 电压波形; 效果完美。,"双馈风力发电机Simulink模型研究:风速变化下的电流电压波形优化"