Oralce手札
文章平均质量分 95
记录和分享Oracle的知识和DBA相关知识
小小工匠
show me the code ,change the world
展开
-
Spring JDBC-Spring事务管理之数据库事务基础知识
概述数据库事务的概念数据并发的问题数据库锁机制事务隔离级别JDBC对事务的支持概述在使用Spring开发应用时,Spring的事务管理可能是被使用最多、应用最广的功能。 Spring不但提供了和底层事务源无关的事务抽象,还提供了声明性事务的功能,可以让开发者从事务代码中解放出来。 数据库事务的概念数据并发的问题数据库锁机制事务隔离级别JDBC对事务的支持原创 2017-09-18 01:52:40 · 15010 阅读 · 0 评论 -
Oracle-awrddrpt.sql比较两个AWR差异报告
概述示例以oracle用户登录到数据库主机执行脚本查看报告概述awrddrpt.sql脚本位于$ORACLE_HOME/rdbms/admin目录中。awrddrpt.sql脚本比较两个时间段的AWR报告。这个脚本的交互部分最重要的就是需要输入要进行对比的两个awr报告的begin snap_id与end snap_id一旦收集到四个快照号码,awrd...原创 2018-03-31 23:49:44 · 14985 阅读 · 0 评论 -
Oracle-AWR管理包DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
概述MODIFY_SNAPSHOT_SETTINGS Procedures概述官方说明:DBMS_WORKLOAD_REPOSITORYOverview of the Automatic Workload RepositoryAWR机制:通过对系统整体动态采样收集快照信息,存储在SYSAUX表空间,,MMON进程实施,快照分析后写入DBA_HIST_%开头的数据字...原创 2018-04-01 13:24:17 · 14303 阅读 · 0 评论 -
Oracle查询优化-01单表查询
1.1 查询表中所有的行与列1.2 从表中检索部分行1.3 查找空值1.4 将空值转换为实际值1.5 查找满足多个条件的行1.6 从表中检索部分列1.7 为列取有意义的名称1.8 在 WHERE 子句中引用取别名的列1.9 拼接列1.10 在 SELECT 语句中使用条件逻辑1.11 限制返回的行数1.12 从表中随机返回 n 条记录1.13 模糊查询原创 2017-01-31 22:39:57 · 12617 阅读 · 0 评论 -
Oracle查询优化-02给查询结果排序
2.1以指定的次序返回查询结果2.2按多个字段排序2.3按子串排序2.4 TRANSLATE2.5 按数字和字母混合字符串中的字母排序2.6 处理排序空值2.7 根据条件取不同列中的值来排序原创 2017-02-02 23:27:49 · 12670 阅读 · 0 评论 -
Oracle查询优化-03操作多个表
3.1 UNION ALL 与空字符串3.2 UNION 与 OR3.3 组合相关的行3.4 IN、EXISTS 和 INNER JOIN3.5 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN 解析3.6 自关联3.7 NOT IN、NOT EXISTS 和 LEFT JOIN3.8 外连接中的条件不要乱放3.9 检测两个表中的数据及对应数据的条数是否相同3.原创 2017-02-07 20:41:36 · 13652 阅读 · 1 评论 -
Oracle查询优化-04插入、更新与删除数据
4.1 插入新记录问题向表中插入一条新的记录。解决方案使用带有values子句的insert语句来插入一行。insert into dept(deptno,dname,loc)values(19,'xgj','BEIJING');讨论作为一种简便方式,在insert语句中,可以省略字段列表,然而,如果语句中没有列出要插入行中的目标字段,则必须要插入表中的所有列,需要注意的,在插入值列表中所列出的值原创 2017-04-02 12:03:54 · 13189 阅读 · 0 评论 -
Oracle查询优化-05元数据查询
5.1列出已创建的表的清单select * from all_tables ;select * from dba_tables ;select * from user_tables ;5.2 列出表的列select * from all_tab_columns a ;select * from dba_tab_columns a ;select * from user_tab_columns原创 2017-04-02 12:05:26 · 12404 阅读 · 0 评论 -
Oracle查询优化-07日期运算
7.1 加减日、月、年在oracle中,date类型可以直接加减天数,而加减月份要用add_months函数.select a.hiredate 雇用日期, a.hiredate + 5 加5天, a.hiredate - 5 减5天, add_months(hiredate, 5) 加5个月, add_months(hiredate,原创 2017-04-02 12:09:11 · 14754 阅读 · 0 评论 -
Oracle优化01-引起数据库性能问题的因素
思维导图概述一个数据库是否存在性能问题,基本上在系统设计的时候就决定了,这个系统设计包括软件的设计、数据库的设计和硬件的设计.其中更细节的分类参考目录。在一个系统的设计阶段,其中任何一个环节存在设计不当之处,都可能导致系统的性能下降,而系统的性能在多数情况下又反映为数据库的性能问题。软件设计对数据库的影响软件架构设计对数据库性能的影响软件系统的架构对数据库的影响是非常直接的。 比如一套并发量非常大的原创 2016-12-03 09:52:55 · 13977 阅读 · 2 评论 -
Oracle优化02-锁和阻塞
思维导图概述之前梳理了一篇博文Oracle-锁解读首先弄清楚两个概念:并发 concurrency: 超过两个以上的用户对相同的数据做修改并行 parallel:将一件事情分成很多小的部分,让每一部分同时执行,最后将执行结果汇总。事实上,没有并发就没有锁。 锁的产生是因为并发,并发的产生是因为系统需要,系统需要是因为用户需要…….由唯一性约束引起的阻塞场景模拟Oracle Database 11g原创 2016-12-06 00:14:27 · 12059 阅读 · 0 评论 -
Oracle优化03-Latch和等待
思维导图系列Latch解读 Oracle-等待事件解读Latch概述Latch造成的等待事件 和 Lock造成的阻塞 ,是两个不同的概念,在性能优化上如果能区分开这两个因素引起的性能问题,将极大的提高我们性能分析的判断能力。那什么是latch呢? 首先我们试想一个场景: 一个数据块正在被在被一个会话从磁盘读入内存中,请注意,是正在读取中,此时另外一个会话正好也需要这个数据块,那改怎么办呢?为了保持原创 2016-12-18 10:40:13 · 13634 阅读 · 2 评论 -
Oracle优化04-Optimizer优化器
思维导图Optimizer概述Oracle数据库中的优化器是SQL分析和执行的优化工具,它负责制定SQL的执行计划,也就是它负责保证SQL执行效率最高.比如优化器决定Oracle是以什么样的方式方式访问数据,是全表扫描(Full Table Scan) 、索引范围扫描(Index Range Scan)还是全索引快速扫描(INDEX Fast Full Scan, INDEX_FFS).对于多表关联原创 2016-12-26 20:59:59 · 12784 阅读 · 0 评论 -
Oracle优化05-执行计划
思维导图系列文章Oracle-SQL Explain Plan解读概述如果要分析某条SQL的性能问题,通常来讲,我们首先要看SQL的执行计划,看看SQL的每一步执行计划是否存在问题。 如果某一条SQL平常执行的都很好,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本上可以判断是执行计划出现了问题。 看懂执行计划变成了SQL优化(其实在大多数的情况下,SQL优化指的是SQL的性能问题定位原创 2016-12-26 23:01:52 · 12701 阅读 · 0 评论 -
Oracle优化07-分析及动态采样-直方图
思维导图概述获取准确的段对象(表、表分区、索引等)的分析数据,是CBO存在的基石。所以数据段的分析对于CBO来讲非常的重要。在本篇博文中我们重新梳理一下,从头开始,再一次走进CBO的世界。我们知道CBO的机制是手机尽可能多的对象信息和系统信息,通过对这些信息进行计算、分析、评估,最终得出一个成本最低的执行花来,这就是CBO的全部。 为了让CBO总是能做出最正确的SQL执行计划,就需要给CBO提供尽可原创 2016-12-27 23:53:11 · 12316 阅读 · 0 评论 -
Oracle优化08-并行执行
思维导图概述在讨论Oracle的性能问题时,通常要假设一个前提,那就是这个系统是OLTP还是OLAP(或者说数据仓库系统)。 只有在这个前提下,讨论一些性能问题才有意义,因为这两类系统太不一样了,甚至很多技术是相悖的。 举个例子 我们说绑定变量,这是一个在OLTP系统上有意义的话题,而对于OLAP系统却完全没有意义,设置不需要它。 再比如说内存命中率,OLTP系统中这个指标非常重要,因为OLTP系原创 2017-01-04 15:04:37 · 12542 阅读 · 0 评论 -
Oracle优化07-分析及动态采样-DBMS_STATS 包
思维导图07系列文章Oracle优化07-分析及动态采样-直方图Oracle优化07-分析及动态采样-DBMS_STATS 包Oracle优化07-分析及动态采样-动态采样DBMS_STATS包DBMS_STAS 包不仅能够对表进行分析,它还可以对数据库分析进行管理。 按照功能可以分一下几类: ( 1) 性能数据的收集 ( 2) 性能数据的设置 ( 3) 性能数据的删除 ( 4) 性能数据原创 2017-01-08 21:01:10 · 14076 阅读 · 0 评论 -
Oracle优化07-分析及动态采样-动态采样
思维导图07系列文章Oracle优化07-分析及动态采样-直方图Oracle优化07-分析及动态采样-DBMS_STATS 包Oracle优化07-分析及动态采样-动态采样动态采样Dynamic_sampling动态采样( Dynamic Sampling)技术的最初提出是在 Oracle 9i R2,在段(表,索引,分区)没有分析的情况下,为了使 CBO 优化器得到足够的信息以保证做出正确的执行计原创 2017-01-08 22:17:37 · 12434 阅读 · 0 评论 -
Oracle海量数据优化-01分区的渊源
思维导图概述delete from t where create_time < to_date('2017-01-01','yyyy-mm-dd');当我们看到这条语句时,会想到什么呢? 一条再简单不过的按照条件删除数据库的操作。 如果大量存在,会不会引起系统性能问题呢? 当这个表的数据足够大时,按照这样的方式来清除数据,代价无疑是非常高昂的。我们提出使用分区的方式来解决这个问题。比如 保留历史数据原创 2017-01-12 23:55:45 · 11912 阅读 · 0 评论 -
Oracle海量数据优化-02分区在海量数据库中的应用-更新中
思维导图概述以前梳理了一篇文章, 案例不是很充分Oracle-分区表解读故本篇博文系统的再重新阐述一下原创 2017-01-18 21:46:54 · 12105 阅读 · 0 评论 -
Oracle-知识结构漫谈
知识结构图杂谈oracle后缀中的字母含义: i : 包含internet部署的新功能 g: 专注于新兴的网格计算模型 c: 云服务 cloud数据库与实例的概念 数据库:信息的物理存储。数据库是物理的,由存储在磁盘中的文件组成 实例:服务器上运行的软件,提供了对数据库的信息的访问。实例是逻辑的,由服务器内存中的结构和进程组成oracle结构表空间、控制文件原创 2016-11-24 00:53:09 · 11912 阅读 · 0 评论 -
Oracle-Materialized View解读
物化视图概述物化视图(Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图。Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面原创 2016-11-25 00:12:31 · 32176 阅读 · 0 评论 -
Oracle-SQL Explain Plan解读
概述执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。 基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划。常用方法1.Explain Plan For SQL•不要实际执行SQL语句,生成的计划未必是真实执行的计划 •必须要有plan_table 2.SQLPLUS A原创 2016-11-30 19:57:07 · 16655 阅读 · 0 评论 -
Oracle-Alert log解读
概述告警日志文件是一类特殊的跟踪文件(trace file)。告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称。数据库告警日志是按时间顺序记录message和错误信息。 Alert log contentsThe alert log is a chronological log of messages and errors, and includes th原创 2016-11-30 22:48:07 · 36146 阅读 · 0 评论 -
Oracle-Listener log解读
Listener log 概述在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大.Listener log locationFor oracle 9i/10g在下面的目录下: $ORACLE_HOME/network/log/listener_$ORACLE_SID.logFor oracle 11g/12c原创 2016-12-01 01:28:22 · 25055 阅读 · 0 评论 -
Oracle-表分析和索引分析解读
概述当表没有做分析的时候,Oracle 会使用动态采样来收集统计信息。 获取准确的段对象(表,表分区,索引等)的分析数据,是CBO存在的基石,CBO的机制就是收集尽可能多的对象信息和系统信息,通过对这些信息进行计算,分析,评估,最终得出一个成本最低的执行计划。所以对于CBO,数据段的分析就非常重要。分析SQLanalyze table tablename compute statistics等同于原创 2016-12-01 23:16:53 · 50077 阅读 · 1 评论 -
Oracle-HWM(High Water Mark) 高水位解读
读前须知:Oracle的逻辑存储管理 ORACLE在逻辑存储上分4个粒度 ,由大到小为: 表空间, 段, 区 和 块. 块Block 块:是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是说当ORACLE从数据文件读数据时,是读取多少个块,而不是多少行. 每一个Block里可以包含多个row. 数据块的大小是通过kb字节个数来指定的,默认为8KB。相原创 2016-12-04 22:38:40 · 13512 阅读 · 0 评论 -
Oracle优化10-SQL_TRACE
思维导图概述当我们想了解一条SQL或者是PL/SQL包的运行情况时,特别是当他们的性能非常差时,比如有的时候看起来就好好像卡在什么地方一样,该如何入手呢?是不是恨不得钻进去看下到底发生了什么? 好在Oracle提供了我们这样的一种方法使用SQL_TRACE来跟踪SQL的执行情况,通过SQLTRACE我们可以很容易的知道当前正在执行的SQL正在干什么。以下操作基于Oracle Database 11g原创 2016-12-14 20:25:35 · 13164 阅读 · 0 评论 -
Oracle优化12-10053事件
思维导图10053事件概述我们在查看一条SQL语句的执行计划时,只看到了CBO最终告诉我们的执行计划结果,但是我们并不知道CBO为何要这样做。特别是当执行计划明显失真时,我们特别想搞清楚为什么CBO会做出这样的一个选择,那么就可以用10053事件来分析SQL分析过程的trace文件。同10046事件一样,10053事件依然无法在官网上找到相关的信息。10053事件为我们真正的揭开蒙在CBO身上的面纱原创 2016-12-15 00:12:44 · 13013 阅读 · 0 评论 -
Oracle优化11-10046事件
思维导图Oracle优化10-SQL_TRACE解读Oracle优化11-10046事件10046事件概述上一篇博文中我们说到了SQL_TRACE,10046同样也可以对SQL的执行计划进行分析,并且更加的强大。10046事件并不是ORACLE官方提供给用户的使用命令,在官网中我们也找不到相关的信息,但是目前已经使用的非常广泛。100046事件按照手机的内容分为4个等级Level 1 等同于SQL原创 2016-12-16 01:08:45 · 12691 阅读 · 0 评论 -
Oracle优化09-绑定变量
思维导图系列博文Oracle-绑定变量binding variable解读Oracle-Soft Parse/Hard Parse/Soft Soft Parse解读概述绑定变量是OLTP系统中一个非常值得关注的技术点。良好的变量绑定会使OLTP系统数据库中的SQL执行的飞快,内存效率极高。 不绑定变量有可能会使OLTP数据库不堪负重,资源被SQL解析严重消耗,系统显得缓慢。本博文的案例基于Orac原创 2016-12-17 00:03:29 · 12402 阅读 · 0 评论 -
Oracle-多表连接的三种方式解读
概述在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 下面是从10053事件中截取的部分trace原文件。Join order[2]: T[T]#1 T1[T1]#0........省略NL Join........ Best NL cost: 574.45 resc: 574.45 resc_io: 567.00 resc_c原创 2016-12-19 01:56:11 · 15456 阅读 · 0 评论 -
Oracle-USERS表空间解读
背景同事在使用数据泵导入dmp文件时,抛出了一个异常ORA-39171: Job is experiencing a resumable wait.ORA-01691: unable to extend lob segment CC_CK.SYS_LOB0000089385C00045$$ by 128 in tablespace USERSUSERS表空间无法扩展了. 事实上,我们的数据不应该存原创 2017-01-09 19:51:02 · 25074 阅读 · 0 评论 -
Oracle 不使用DBCA在Oracle 11中删除数据库
概述本博文将介绍如何不使用DBCA(数据库配置助手)在Oracle 11中删除数据库。1- 导入数据库的SID,如果没有定义的话export ORACLE_SID=SIDNAME2- 以操作系统认证连接数据库[oracle@Oracle11 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 1 17:3原创 2017-01-18 11:58:29 · 13303 阅读 · 0 评论 -
Oracle-修改用户密码为UNLIMITED
查看用户归属的profile查看指定profile文件的有效期使用DBA权限的用户修改1.查看用户归属的profileConnected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 Connected as xx@xxxxxxSQL> SELECT username,PROFILE FROM dba_users;原创 2017-06-02 10:21:13 · 13239 阅读 · 0 评论 -
Oracle-Oracle数据库结构
再谈Oracle数据库结构之前写了一篇文章《Oracle-知识结构漫谈》 粗略的介绍了Oracle数据库接口,在这里再更加详细的描述一下,当做是对原有知识的巩固,温故知新。Oracle体系结构数据库的体系结构是从某一个角度来分析和考察数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。Oracle数据库是一个逻辑概念,而不是一个运行数据库服务器的计算机系统或者一台Oracle服务器。原创 2017-06-02 13:16:32 · 18939 阅读 · 1 评论 -
Oracle高级查询
概述高级查询在数据库的开发过程中应用广泛,本博文将从分组查询、多表查询和子查询三个方面介绍Oracle的高级查询,最后典型案例的应用。sql窗口修改已执行的sqled表示编辑上个sql / 表示执行上个sql分组查询分组函数的概念分组函数作用于一组数据,并对一组数据返回一个值。 分组函数的语法常用分组函数avgsumminmaxcountwm_contact 行转列更多及用法请参考原创 2016-11-06 23:49:10 · 12568 阅读 · 1 评论 -
Oracle-内存管理解读
概述关于内存的配置,是最影响 Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗: CPU 和 IO.那Oracle 内存存储的主要内容是什么呢?程序代码( PLSQL、 Java);关于已经连接的会话的信息,包括当前所有活动和非活动会话;程序运行时必须的相关信息,例如查询计划;Oracle 进程之间共享的信息和相互交流的信息,例如锁;那些被永久存储在外围存储介质上,被 cac原创 2016-11-11 00:47:27 · 12310 阅读 · 1 评论 -
Oracle-SYSAUX表空间解读
SYSAUX概述官方文档:About the SYSAUX TablespaceSYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.SYSAUX 表空间存放一些其他的 metadata 组件,如 OEM,Streams 等会默认存放在 SYSAUX 表空间里。通过分离这些组原创 2016-11-15 23:01:46 · 25666 阅读 · 0 评论 -
Oracle-UNDO表空间解读
UNDO概述官方文档Managing Undo TablespacesUNDO 表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,oracle会将这些操作的旧数据写入到UNDO段。在 oracle9i之前,管理UNDO数据时使用(Rollback Segment)完成的.从oracle9i开始,管理UNDO数据不仅可以使用回滚段,还可以使用UN...原创 2016-11-16 01:45:27 · 19750 阅读 · 2 评论