oracle优化原则

1:insert 插入

(1):insert into /*+ append */ NOLOGGING

2: select 查询

(1):/*+ full(v) */ 全表查询 速度慢

(2):/*+ full(v) full(fd) */ 多个表

(3):/*+ parallel(4) */ 检索查询 效率高

3:with 临时表 as
(select * from 表)
只执行一次,效率快。

select * from 临时表 a,表2 b
where a.id = b.id

4:union all(性能高)和Union
并集--追加

5:left join 左连接
交集

6:case 
when ... then...else
when ... then...else
end

7:nvl(count(1),0)
代表:如果值为空则赋一个默认值0,
不为空就为count(1)相当于if...else

8:exists
where exists (select 1 from hcpms_medl_page fmp 
where fmp.visit_no=b.visit_no)

9:查询有条件有多个值(集合)
<isNotEmpty prepend=" " property="kpiCodeList">
<iterate prepend=" and B.KPI_ID in" open="(" close=")"
conjunction="," property="kpiCodeList">
#kpiCodeList[]#
</iterate> 
</isNotEmpty>

10:相等情况判断
<isNotEqual property="visitType" compareValue="0" prepend="AND">
IBM.ATTENDANCE_TYPE = #visitType#
</isNotEqual>

11:分页
SELECT * FROM (SELECT CEIL(ROWNUM /#rows#) PAGE,
B.AhealthcareProviderCode MEDICAL_ORG_CODE
from hcpms_provide_info)
WHERE PAGE=#page#

12:插入示例:批量插入
<![CDATA[
INSERT INTO HCPMS_KPI_DEPT_GL
(ID_KPI_DEPT,
SOCIATION_CODE,
MEDICAL_ORG_CODE,
DEPARTMENT_CODE,
PERIOD,
KPI_TIME,
VISIT_TYPE,
KPI_CODE,
KPI_VALUE,
KPI_PARM1,
KPI_PARM2,
CREATED_BY,
UPDATED_BY,
IS_VALID)
]]>
<iterate conjunction="union all">
<![CDATA[ SELECT SYS_GUID(),
#item[].sociationCode#,
#item[].medicalCode#,
#item[].departmentCode#,
#item[].period#,
#item[].kpiTime#,
#item[].visitType#,
#item[].kpiCode#,
#item[].kpiValue#,
#item[].kpiParm1#,
#item[].kpiParm2#,
#item[].useId#,
#item[].useId#,
#item[].isValid# 
FROM DUAL
]]>
</iterate>

13:修改--更新
update hcpms_kpi_batch
<dynamic prepend=" set ">
<isNotNull prepend="," property="status">
status=#status#
,date_updated=sysdate
</isNotNull>
<isNotNull prepend="," property="tempBatch">
tmp_batch=''
</isNotNull>
</dynamic>
where id_kpi_batch =#kpiId#

oracle个人总结的更多相关文章

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  3. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  4. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  7. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  8. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  9. 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

    概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...

  10. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

随机推荐

  1. ALV详解:Function ALV(一)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. Codeforces Round #249 (Div. 2) A题

    链接:http://codeforces.com/contest/435/problem/A   A. Queue on Bus Stop time limit per test 1 second m ...

  3. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  4. hdu 3535 AreYouBusy 分组背包

    AreYouBusy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Probl ...

  5. 面向对象---prototype

    构造函数里的this,外面的new <script> //用工厂方式构造对象 function createPerson(name, sex) //构造函数 { //假想的系统内部工作流程 ...

  6. FLASH CC 2015 CANVAS (五)loading的制作

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 AS3的loading一般我们都写在时间轴第一帧,但是FLASH CC CANVAS的导出项目的lo ...

  7. view的封装

    如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不让外界关心 外界可以传入对应的模型数据给view,view拿到模型数据后给内部的子控件设置对应的数据 ...

  8. 1 HTML

    1 HTML 基础知识 软件的结构:    C/S(Client  Server)结构的软件: 比如: QQ. 极品飞车. 飞信 . 迅雷      cs结构的软件的缺点:更新的时候需要用户下载更新包 ...

  9. Android自动检测版本及自动升级

    步骤: 1.检测当前版本的信息AndroidManifest.xml-->manifest-->android:versionName. 2.从服务器获取版本号(版本号存在于xml文件中) ...

  10. git命令之git rebase 的用法

    rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 现在我 ...