oracle执行计划

《精品篇】如何在不影响Oracle生产库性能评估整库大小

爱⌒轻易说出口 提交于 2019-12-14 01:37:02
【引言】 最近碰到一个小问题:一TB级的Oracle生产库,因为要走数据迁移,需要先行评估整个库的迁移数据量大小,但又不得影响生产库运行性能。如何搞?大家都知道,expdp数据泵有两个很好用的参数ESTIMATE和ESTIMATE_ONLY,此两个参数可以保证在不真正发起逻辑备份的情况下评估整个迁移生产库的大小。 这里使用$ expdp -help先看expdp的ESTIMATE和ESTIMATE_ONLY两个参数的介绍: ESTIMATE Calculate job estimates. Valid keyword values are: [BLOCKS] and STATISTICS. ESTIMATE_ONLY Calculate job estimates without performing the export. ESTIMATE 默认:blocks 指定计算每张表使用磁盘空间的方法 ESTIMATE=[BLOCKS | STATISTICS] 1.BLOCKS - 通过块数和块大小计算 2.STATISTICS -每张表的统计信息计算 Expdp可计算导出数据大小容量,通过两种方式进行容量估算,一种是通过数据块数量、一种是通过统计信息中记录的内容估算。两者在不同版本中,可能有巨大的性能差异。 通过expdp的参数ESTIMATE

Oracle OLAP 与 OLTP 介绍

此生再无相见时 提交于 2019-12-13 17:52:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 数据处理大致可以分成两大类: 联机事务处理 OLTP ( on-line transaction processing )、 联机分析处理 OLAP ( On-Line Analytical Processing )。 OLTP 是传统的关系型数据库的主要应用 ,主要是基本的、日常的事务处理,例如银行交易。 OLAP 是数据仓库系统的主要应用 ,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作; OLAP 系统则强调数据分析,强调 SQL 执行市场,强调磁盘 I/O ,强调分区等。 OLTP 与 OLAP 之间的比较 : 什么是 OLTP OLTP ,也叫联机事务处理( Online Transaction Processing ),表示事务性非常高的系统 ,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的 Transaction 以及 Execute SQL 的数量。在这样的系统中,单个数据库每秒处理的 Transaction 往往超过几百个,或者是几千个, Select 语句的执行量每秒几千甚至几万个。典型的 OLTP 系统有电子商务系统、银行、证券等,如美国

Oracle 的安装与基本操作

↘锁芯ラ 提交于 2019-12-11 23:38:10
在计算机信息安全领域中,数据库系统无疑有着举足轻重的地位。例如,微软的SQL server、IBM的DB2,以及甲骨文公司的Oracle、MySQL等,都是比较知名的数据库管理软件,其中Oracle数据库更是在电信、银行、证券、交通等大型应用场合拥有着绝对领先的优势。 这里我们就来说说Oracle 12c的安装。 Oracle 12c明确支持的Linux操作系统包括Oracle Linux 7、Oracle Linux 6. Oracle Linux 5. Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 6. Red Hat Enterprise Linux 5. SUSE Linux Distributions .NeoKylin Linux Advanced Server Distributions。 因为Red Hat Enterprise 和CentOS属于同步发行的操作系统,所以Oracle 12c也同样支持CentOS7. CentOS6. CentOS5 操作系统。在其他Linux系统中安装时,个别软件或配置文件可能需要做适当调整。 Linux 系统要求: 物理内存: 必须高于1GB,对于VMware虚拟机建议不少于2GB. 交换空间: 物理内存为1~ 2GB时,交换分区为物理内存的1.5~2倍;物理内存为2~

部署Oracle 12c数据库

寵の児 提交于 2019-12-11 20:32:53
博文结构 Oracle的手动安装过程 启动,关闭Oracle数据库 一 .Oracle数据库概述 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。 完整的数据管理功能 1)数据的大量性 2)数据的保存的持久性 3)数据的共享性 4)数据的可靠性 2、完备关系的产品: 1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示; 2)保证访问的准则 3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化 4)数据物理性和逻辑性独立准则 3、分布式处理功能: ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。 4、用ORACLE能轻松的实现数据仓库的操作。 优点 ■ 可用性强 ■ 可扩展性强 ■ 数据安全性强 ■ 稳定性强 二.安装过程 安装前要求 Oracle

Oracle 多个with as

坚强是说给别人听的谎言 提交于 2019-12-10 18:43:55
项目中早些时间,有个oracle查询语句写的极其复杂,因为数据量小的关系,当时也并没有怎么在意,回来随着时间过去,客户数据库数量越来越大,那段语句的劣性就体现的非常明显。优化时,发现查询关系逻辑混乱又复杂(虽然数据查询结果并没有错),多个类似的子查询嵌套,导致查询性能变的很低。 寻求资料知道ORACLE有个WITH as 用法及其好用 写法大致如下: WITH query1 AS (select ...from ....where ..), query2 AS (select...from ...where..), query3 AS (select...from ...where..) SELECT ...FROM query1,quer2,query3 where ....;   上述代码,每一个逗号(必不可少)代表一段子查询,观察执行计划发现,执行时with as 中的子查询结果会以临时表的形式存在。 这样写每段子查询相应的表仅会被检索一次,不会像原来嵌套的一样反复扫描相同的表,达到了“少读的目的”,大大提高了数据分析以及查询效率。 =========================================================================================== 其他查看: https://blog.csdn.net

Oracle 19c和20c新特性最全解密

Deadly 提交于 2019-12-10 11:29:47
本期为我们带来分享的嘉宾是 ACOUG 核心专家,Oracle ACE 总监 杨廷琨先生,本次嘉年华上,杨老师为我们带来题为:Oracle 19c 和 20c 的新特性解密 主题分享。下面,让我们跟随杨老师,一同来学习关于Oracle 19c和20c新特性吧~ 在这次数据技术嘉年华大会上,我和大家分享的是Oracle最新版本的一些重要的新特性。 根据我们白求恩自动巡检平台的数据分析结果,虽然Oracle对于11g的支持已经进入扩展维护期,但是目前业内使用最多的版本仍然是11.2,大概占到了6成左右。而12c的版本的使用超过10g版本,总体接近3成。这说明对于很多客户,已经逐渐把数据库升级到了12.2及以后的版本上。12c正在逐渐变为主流的版本,因此希望把新版本中一些重要的新特性分享给大家,以便于后续在数据库版本选择的时候可以对新的功能做到心中有数。 12.2推出了很长时间了,大部分DBA对于12.2的特性并不陌生,因此这次主要分享18c、19c和20c的新特性。 在Oracle中,一个频繁插入的系统在正常时刻的运行会非常稳定和高效,但是很可能突然会出现大量的竞争和等待,一般来说产生这个性能问题原因是单调递增索引在索引分裂的时候引发的竞争和等待。绝大部分主键依赖于SEQUENCE产生的NEXT_VALUE,而SEQUENCE产生的值一般都是单调递增的,因此序列产生的新值总是最大的

Oracle Data Guard 的角色转换(Switchover)

风流意气都作罢 提交于 2019-12-09 21:24:20
Oracle Data Guard 的角色转换( Switchover ) [日期:2013-06-18] 来源:Linux社区 作者:newhappy [字体:大 中 小] 实验环境:OEL+ Oracle 11.2.0.3+physical standby 众所周知,Data Guard已经是现今标准的主流容灾方案,由于日志传递对于网络适应程度强,且可以采用同步实时的传递方式和异步延迟的传递方式,甚至可以成为远程的异地容灾方案。不管用于何种用途,DG都免不了要进行角色转换,即将standby 数据库切换为primary数据库,角色转换分为:switchover和failover两种;两种区别从三个角度来对比: (1)、使用场合不同:Switchover 用于有准备的、计划之中的切换,通常是系统升级、数据迁移等常态任务;Failover用于意料之外的突发情况,比如异常掉电、自然灾难等等。 (2)、数据丢失程度不同:Switchover不会丢失数据,Failover通常意味着有部分数据丢失。 (3)、善后处理的不同:Switchover之后Dataguard环境不会被破坏,任然有Primary、Standby两种角色的系统存在。但是Failover之后,Dataguard环境就会被破坏,必须需要重建。 一、Switchover 因为Switchover这种转化是有DBA主动

Oracle中的append parallel关键字

被刻印的时光 ゝ 提交于 2019-12-06 12:20:38
append parallel关键字 并发parallel和append /*+append*/ 注意事项 1.在非归档模式中 nologing和 logging 都不会产生大量的redo日志,但是在归档模式中如果是logging 表会产生大量的redo日志 但是nologging表就不会产生. (建议在归档模式中大量插入数据的时候先把表改成nologging模式'ALTER TABLE table_name NOLOGGING' 然后 等数据插入完事在'ALTER TABLE table_name LOGGING') 2.append 增加数据的时候 不会检查HWM中是否有空闲块,会直接往HWM之上一个新块当中插入数据,所以一定要批量插入,要不然每一条数据就会增加一个新块 十分浪费空间. 测试环境11g 300万数据 insert /*+append*/ into 8秒; insert into 190秒; 效率确实提高很多. parallel dml (pdml)注意事项 1.pdml 必须显示的打开和关闭否则不生效(加上hint注释的时候执行计划的显示是一样的但是并没有并发dml) ALTER SESSION ENABLE PARALLEL DML; ALTER SESSION DISABLE PARALLEL DML; 在不打开并发dml情况下600万数据 HINT

Oracle的视图和索引

烂漫一生 提交于 2019-12-06 04:24:25
学习笔记: ##视图 * 概念:视图就是提供一个查询的窗口,所有数据来自于原表。 * 方法: * 查询语句创建表: * create table emp as select * from scott.emp; * 创建视图【必须有dba权限】 * create view v_emp as select ename, job from emp; * 查询视图 * select * from v_emp; * 修改视图【不推荐】 * update v_emp set job='CLERK' where ename='ALLEN'; * --做增删改需要加commit * commit; * 创建只读视图(with read only) * create view v_emp1 as select ename, job from emp with read only; * 作用: * 1. 视图可以屏蔽掉一些敏感字段。 * 2. 保证总部和分部数据及时统一。 ##索引 * 概念:索引就是在表的列上构建一个二叉树。 * 作用: * 达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。 * 方法: * 单列索引 * 复合索引 * 单列索引 * 创建单列索引: * create index idx_ename on emp(ename); * 注意: * 单列索引触发规则

oracle 优化之索引

故事扮演 提交于 2019-12-06 00:01:37
索引是sql优化的使用频度最高的武器 索引就是一种优化查询的工具 , 注意 是优化了查询 .,但是他也影响了dml的速度变慢 . 在了解索引的优点之前我们先看一下索引的结构,只有充分了解索引的结构,才能明白索引的机制和应用. 索引结构 根块--茎块---叶块 叶块;存储rowid+列植. 索引存储列植的时候是有序排列,但是不存储空值,这是索引的重要属性 茎快:当产生两个叶块以上的时候 就会产生一个茎快来管理,这时候茎块只储存叶块的键值. 根块: 当产生 两个茎块 以上的时候 , 就 会产生一个根块来管理, 这时候根块只储存 茎 块的键值. 索引运行方式 通过索引查询是首先通过键值 由根块找到叶块,根块-茎块-叶块找到rowid和列值. 索引三大特性 1.索引的高度较低 2.有序性 3.存储列值和rowid 理解了索引特性之后 就可以理解 1.索引列的聚合 .注:因为索引里已经存储了列值所以索引列的聚合必然很快 2.索引列的排序. 注:因为索引里已经存储了排序之后的列值所以排序也必然很快 索引扫描类型 1.index range scan 2.index full scan 3.index fast full scan 4.index unique scan 5.index full scan (max/min) 注:这里如果语句是这样的select max(id),min(id)