oracle执行计划

Mysql /Oralce 50个区别

吃可爱长大的小学妹 提交于 2019-12-05 20:52:44
   1. 有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦.   2. Oracle不支持偏移(offset)语法. 3. Oracle的复制功能可能比MySQL更加健壮,不过也更加难以配置.   4. 对于多个Master类型的系统,大部分用户都希望你使用更加复杂也更加昂贵的Oracle RAC(虽然可能NDB更加健壮).   5. Oracle的分区功能非常健壮,但是它不是内置的,并需要专门为此付费(分区功能是在Enterprise Edition里面是内置的).   6. 在Linux/Unix上,Oracle并不象Mysql那么方便,很多Linux/Unix发行版默认就会自带Mysql.(我对这一点的理解与翻译可能都有偏差)   7. INSERT … ON DUPLICATE KEY UPDATE语法将不再可用,不过你需要学习更加复杂(但是符合SQL标准)的MERGE语法.   8. Oracle的ROLE架构与MySQL有很大差异,无法再使用root角色来完整所有工作.(不过Sys用户的权限仍然与root相差无几,只是为了安全着想,不建议这么使用了).   9. Role 帐户与特定的Schema联系在一起(反之也一样),类似于MySQL数据库中的Database概念.

SQL Server查询优化方法

ε祈祈猫儿з 提交于 2019-12-05 18:58:01
此文摘自网上,侵删! (查询速度慢的原因很多,常见如下几种) . 1、没有索引或者没有用到索引(这是 查询慢 最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是 查询慢 最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上, SQL 2000不在支持。数据量(尺寸)越大,提高I/O越重要. 2、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3、升级硬件 4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段 5、提高网速; 6、扩大服务器的内存,Windows 2000和 SQL server 2000能支持4-8G的内存。配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行

RAC环境常见的性能问题

对着背影说爱祢 提交于 2019-12-05 06:41:14
问题 1:大量块丢失 (gc lost blocks, gc current/cr lost blocks) 症状 I. AWR 报告中显示有大量块丢失。 II. netstat -s 报告数据包重新组装故障(reassambly failure)和丢失数据包(dropped packets)增加。 解决方案 使用以下文档进行故障排除并解决丢失块问题。该文档描述了症状、可能原因以及解决方案。 Document 563566.1 - gc block lost diagnostics 问题 2:大量 log file sync 等待 症状 I. AWR 报告中显示 log file sync 始终位于 Top 5 等待事件列表中。 II. 平均 log file sync 时间很长(> 20 毫秒)。 III. 平均 log file parallel write 时间很长(> 10 毫秒)。 III. 平均 redo write broadcast ack time 或者 wait for scn ack 时间很长(> 10 毫秒)。 IV. 平均 log file sync 时间很短,但 log file sync 等待次数太多。 背景 用户会话在提交或回退时,会话的重做信息需要由 LGWR 刷新到重做日志文件。用户会话等待“log file sync”的同时,等待 LGWR

未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。

泄露秘密 提交于 2019-12-05 05:31:34
未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。 详细错误提示信息 “System.InvalidOperationException”类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理 其他信息: 未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。 解决方案.A计划 第一步.安装oracle客户端(oracle下载还需要注册...) 第二步.执行:regsvr32 "C:\xx\product\11.2.0\client_1\BIN\OraOledb11.dll" 第二步成功之后.弹出框提示: { "Window Title":"RegSvr32", "Content":"DllRegisterServer 在 C:\app\admin\product\11.2.0\client_1\BIN\OraOledb11.dll 已成功。" "按钮":"确定" } 解决方案.B计划(以上不行,以下值得一试) 电脑64位系统,安装的也是64位oracle客户端的,安装32位oracle客户端试一试 来源: https://www.cnblogs.com/love-zf/p/11909400.html

oralce与mysql的区别

大城市里の小女人 提交于 2019-12-04 23:38:42
1. 有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦.   2. Oracle不支持偏移(offset)语法. 3. Oracle的复制功能可能比MySQL更加健壮,不过也更加难以配置.   4. 对于多个Master类型的系统,大部分用户都希望你使用更加复杂也更加昂贵的Oracle RAC(虽然可能NDB更加健壮).   5. Oracle的分区功能非常健壮,但是它不是内置的,并需要专门为此付费(分区功能是在Enterprise Edition里面是内置的).   6. 在Linux/Unix上,Oracle并不象Mysql那么方便,很多Linux/Unix发行版默认就会自带Mysql.(我对这一点的理解与翻译可能都有偏差)   7. INSERT … ON DUPLICATE KEY UPDATE语法将不再可用,不过你需要学习更加复杂(但是符合SQL标准)的MERGE语法.   8. Oracle的ROLE架构与MySQL有很大差异,无法再使用root角色来完整所有工作.(不过Sys用户的权限仍然与root相差无几,只是为了安全着想,不建议这么使用了).   9. Role 帐户与特定的Schema联系在一起(反之也一样),类似于MySQL数据库中的Database概念.

【转】Oracle执行计划详解

浪子不回头ぞ 提交于 2019-12-04 17:34:45
简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容。 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scans, FTS) 2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup) 3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描:  (1) 索引唯一扫描(index unique scan)  (2) 索引范围扫描(index range scan) 在非唯一索引上都使用索引范围扫描。使用index rang scan的3种情况:    (a) 在唯一索引列上使用了range操作符(> < <> >= <= between)    (b) 在组合索引上,只使用部分列进行查询,导致查询出多行    (c) 对非唯一索引列上进行的任何查询。    (3) 索引全扫描(index full scan)  (4) 索引快速扫描

学习笔记:oracle学习一:oracle11g体系结构之服务器结构、数据字典

北慕城南 提交于 2019-12-04 09:48:03
目录 1、服务器架构 1.1 系统全局区SGA 1.1.1 高速数据缓冲区(database buffer cache) 1.1.2 重做日志缓冲区(redo log buffer cache) 1.1.3 共享池(shared pool) 1.1.4 大型池(large pool) 1.1.5 Java池 1.1.6 流池 1.2 程序全局区(PGA) 1.3 前台进程 1.3.1 用户进程 1.4 后台进程 1.4.1 数据写入进程(DBWR) 1.4.2 检查点进程(CKPT) 1.4.3 日志写入进程(LGWR) 1.4.4 归档进程(ARCH) 1.4.5 系统监控进程(SMON) 1.4.6 进程监控进程(PMON) 1.4.7 锁进程(LCKN) 1.4.8 恢复进程(RECO) 1.4.9 调度进程(DNNN) 1.4.10 快照进程(SNPN) 2、数据字典 2.1 Oracle数据字典简介 2.2 Oracle常用数据字典 2.2.1 基本数据字典 2.2 常用动态性能视图 本系列是作为学习笔记,用于记录学习过程,加深学习印象,以及自己重新回顾学习内容只用,参考书籍为《oracle 11g从入门到精通(第二版)》,如果需要深入学习,请购买原书籍,谢谢! 1、服务器架构 Oracle服务器主要由实例、数据库、程序全局区和前台进程组成,如下图所示 实例:即例程

oracle学习篇:九、性能诊断与SQL优化

戏子无情 提交于 2019-12-04 00:02:16
9.1 使用autotrace功能辅助sql优化 oracle sql*plus提供一个autotrace的功能,可以用于跟踪sql的执行计划,收集统计信息,通常被作为sql的优化工具之一而被广泛使用。 9.1.1 autotrace功能的启用 autotrace有几个常用选项,简单说明如下: set autotrace off:不生产autotrace报告,这是缺省模式; aet autotrace on explain:autotrace只显示优化器执行路径报告; set autotrace on statistics:只显示执行统计信息; set autotrace on:包含执行计划和统计信息; set autotrace traceonly:同set autotrace on,但是不显示查询输出。 9.1.2 autotrace功能的增强 9.1.3 autotrace功能的内部操作 当使用autotrace功能时,在数据库内部,oracle实际上是启动了2个session连接,一个session用于执行查询等操作,另外一个session用于记录执行计划和输出最终结果等操作。 这两个session都是由一个进程衍生。select * from v$process;一个进程在数据库中可能对应多个session。 主要的操作步骤如下: (1)执行计划的输出 (2)统计信息输出

oracle学习篇:八、等待事件

冷暖自知 提交于 2019-12-03 22:44:40
当一个进程连接到数据库之后,进程所经历的种种等待就开始被记录,并且通过一系列的动态性能视图进行展现。通过等待事件用户可以很快地发现数据库的性能瓶颈,从而进行针对性能的优化和分析。 8.1 等待事件的源起 查询数据库版本: select * from v$version; 查询等待事件数量: select * from v$event_name; oracle的等待事件,主要可以分为两类,即空闲idle等待事件和非空闲non-idle等待事件。空闲等待事件指oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。非空闲等待事件专门针对oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是,在调整数据库的时候应该关注和研究的。 查询空闲等待事件: select * from v$event_name where name like '%idle%'; 也可以通过查询v$system_wait_class视图获得各类主要等待事件的等待时间和等待次数等信息。 select * from v$system_wait_class; 8.2 从等待发现瓶颈 v$session视图:记录数据库当前连接的session信息,和session的生命周期相关,并不记录历史信息; v$session_wait视图

Oracle Hints详解

两盒软妹~` 提交于 2019-12-03 04:33:24
在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用。基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。 此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全表扫描。在Oracle中,是通过为语句添加 Hints(提示)来实现干预优化器优化的目的。 Oracle Hints是一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用Oracle Hints来实现: 1) 使用的优化器的类型 2) 基于代价的优化器的优化目标,是all_rows还是first_rows。 3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。 4) 表之间的连接类型 5) 表之间的连接顺序 6) 语句的并行程度 2、HINT可以基于以下规则产生作用 表连接的顺序、表连接的方法、访问路径、并行度 除了”RULE”提示外,一旦使用的别的提示,语句就会自动的改为使用CBO优化器,此时如果你的数据字典中没有统计数据