随笔分类 - Oracle
摘要:--pl/sql通过SQL和ORACLE数据库紧密的整合在一起--在pl/sql中可以执行任何操作语句(DML语句),包括INSERT,UPDATE,DELETE,MERGE,也包括查询语句--可否执行DDL语句呢?--不可以直接执行,但可以通过动态SQL的方式执行,关于动态SQL,后面课程会专门拿
阅读全文
摘要:--程序员在开发的时候,经常天真的认为这个世界是完美的,用户如同自己般聪明,总能按照自己设想的方式--操作系统输入数据。但残酷的事实告诉我们,这是不可能的事情,用户总会跟我们相反的方式操作系统--于是,无数的问题砸向我们。--那么怎么办呢? PL/SQL提供了强大、灵活的错误捕获和处理方法,这节课我
阅读全文
摘要:1. 请列举关联数组、嵌套表、VARRAY三种集合类型的区别区别:1 关联数组只能在plsql中使用,嵌套表,varray可用于sql中,数据库表中的列2 嵌套表,varray必须在使用的时候初始化,关联数组在声明时自动完成3 关联数组是稀疏的,varray是紧凑的,嵌套表开始是紧凑的,删除了其中的
阅读全文
摘要:--开始介绍变量之前,我们先看下怎么在PLSQL写程序,如下我们写了一个块 --以上是一个匿名块,它包含三部分,声明部分(声明变量、常量,游标,定义过程、函数)、执行区(执行SQL代码或PLSQL代码),异常处理部分-- 声明部分和异常处理部分是可选的,比如可以这样,这是最简单的块 --需注意的是,
阅读全文
摘要:1 判断回滚段竞争的sql 2 判断恢复日志竞争的sql 3 判断表空间碎片 4 确定命中排序域的次数 5 确定当前sga的值 6 查看高速缓冲区命中率 7 查看共享池命中率 8 查看参数文件 9 查看数据库属性 10 查看当前会话的sid,serial# 11 根据sid查询os的进程id 12
阅读全文
摘要:Oracle数据库中的cursor分为2中类型:shared cursor,session cursor Shared cursor:库缓存,sga中一块内存区域 会缓存存储目标sql的sql文本、解析树、该sql所涉及的对象定义、该sql所使用的绑定变量类型和长度,以及改sql的执行计划等信息。
阅读全文
摘要:index range scan(索引范围扫描): 1.对于unique index来说,如果where 条件后面出现了<,> ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么就会执行index unique scan。 2
阅读全文
摘要:在oracle中,利用index来避免排序 利用索引范围扫描 如果是倒序排序 这里只是说明了能够避免排序的执行计划,但是不一定能提升性能 上面针对于单表 MERGE JOIN连接方式 针对merge join只能对连接的列排序,且排序操作只能是升序 NESTED LOOP连接 由于nested lo
阅读全文
摘要:oracle里的查询转换的作用 Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql 在10g及其以后的版本中,oracle会对某些类型的查询转换(比如子查询展开、复杂视图合并等)计算成本,oracle会分别计算查询转换后的 等
阅读全文
摘要:Oracle里的优化器 优化器的目的是按照一定的判断原则来得到它认为的目标sql在当前情形下最高效的执行路径。 基于成本的优化器CBO CBO:对目标sql执行所要耗费的cpu,i/o和网络资源的一个估算值 在解析目标sql时,首先会对目标sql执行查询转换,接下来,cbo会计算执行完查询转换这一步
阅读全文
摘要:v$undostat 本视图监控当前实例中undo空间以及事务如何运行。并统计undo空间开销,事务开销以及实例可用的查询长度。 V$UNDOSTAT中的常用列 Endtime:以10分钟为间隔的结束时间 UndoBlocksUsed:使用的undo块总数 TxnConcurrency:事务并发执行
阅读全文
摘要:v$segstat 本视图实时监控段级(segment-level)统计项,支持oracle9ir2及更高版本 V$SEGSTAT中的常用列 TS#:表空间标识 OBJ#:字典对象标识 DATAOBJ#:数据对象标识 STATISTIC_NAME:统计项名称 STATISTIC#:统计项标识 VAL
阅读全文
摘要:v$latch Oracle Rdbms应用了各种不同类型的锁定机制,latch即是其中的一种。Latch是用于保护SGA区中共享数据结构的一种串行化锁定机制。Latch的实现是与操作系统相关的, 尤其和一个进程是否需要等待一个latch、需要等待多长时间有关。Latch是一种能够极快地被获取和释放
阅读全文
摘要:v$sql V$SQL中存储具体的SQL语句。 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。 例1: 这里介绍以下child cursor user A: select
阅读全文
摘要:v$process 本视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。在某些情况下非常有用: 1 如果数据库瓶颈是系统资源(如:cpu,内存),并且占用资源最多的用户总是停留在某几个服务进程,那么进行如下诸项: 找
阅读全文
摘要:按组分的几组重要的性能视图 1。System 的 over view v$sysstat , v$system_event , v$parameter,V$instance得到oracle_sid 2。某个session 的当前情况 v$process , v$session , v$session
阅读全文
摘要:1 oracle里的统计信息 Oracle的统计信息是这样的一组数据,存储在数据字典,从多个维度描述了oracle数据库对象的详细信息,有6种类型 表的统计信息:记录数、表块的数量、平均行长度等 索引的统计信息:索引的层级、叶子块的数量、聚簇因子等 列的统计信息:列的distinct、为null的数
阅读全文
摘要:Hints 应该慎用,收集相关表的统计信息,根据执行计划,来改变查询方式 只能在SELECT, UPDATE, INSERT, MERGE, or DELETE 关键字后面,只有insert可以用2个hint(append 跟parallel),其他只能only one—如果sql中使用了hint,
阅读全文
摘要:1 排序合并连接SMJ Sort merge join 排序合并总结: 1 通常情况下,排序合并连接的效率远不如hash join,前者适用范围更广,hj只使用于等值连接,smj范围更广(<,>,>=,<=) 2 通常情况下,smj并不适合OLTP系统,排序操作是非常昂贵的操作, 2 嵌套循环连接N
阅读全文
摘要:由于安装rac的时候没有开启oem,这里开启oem,方便管理 [oracle@rac01 ~]$ emca -config dbcontrol db -repos create -cluster STARTED EMCA at Mar 14, 2019 2:24:14 PMEM Configurat
阅读全文