Oracle 优化
文章平均质量分 88
Demonson
桃李春风一杯酒,江湖夜雨十年灯。
展开
-
Oracle性能调整的三把利剑--ASH,AWR,ADDM
Oracle性能调整的三把利剑--ASH,AWR,ADDMASH (Active Session History)ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件。不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成。ASH buffers 的最小值为1MB,最大值不超过30MB。内存中记录数据。期望值是记录一小时的内容。生成ASH报告:SQLPLUS>@?/...转载 2018-03-07 17:13:38 · 829 阅读 · 0 评论 -
关于shared pool的深入探讨:latch free/library cache pin/library cache lock
关于shared pool的深入探讨(一)关于shared pool的设置一直是一个争议较多的内容。很多文章上说,shared pool设置过大会带来额外的管理上的负担,从而在某些条件下会导致性能的下降。那么这个管理上的负担指的是什么内容呢? 本文对这个内容作一定的深入探讨。本文只涉及一个方面,后续的文章将从其他方面继续讨论。 基础知识:我们可以通过如下命令转储shared pool共享内存的内容...转载 2018-04-02 10:04:21 · 1977 阅读 · 0 评论 -
Oracle深度学习笔记——shared_pool底层知识大集合
1 shared poolhttp://www.360doc.com/content/16/0410/22/31263000_549565302.shtml--Library Cahce锁挣用Oracle引入Shared Pool就是为了帮助我们实现代码的共享和重用。Shared Pool主要由两部分组成,一部分是库缓存(Library Cahce),另一部分是数据字典缓存(Data Di...转载 2018-04-02 16:20:09 · 4410 阅读 · 0 评论 -
Bug 13250244 - Shared pool leak of "KGLHD" memory when using multiple subpools (文档 ID 13250244.8)
Bug 13250244 Shared pool leak of "KGLHD" memory when using multiple subpools This note gives a brief overview of bug 13250244. The content was last updated on: 05-JUL-2013 Click here for details of ...转载 2018-04-02 17:37:47 · 283 阅读 · 0 评论 -
oracle隐含参数的查看与修改
v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的。 1. 可以通过如下方式查询当前实例的所有隐含参数:col name for a30;col value for a10;selectx.ksppinm name,y.ksppstvl value,y.ksppstdf isdefault,decode(bitand(y.ksp...转载 2018-03-27 16:57:30 · 645 阅读 · 0 评论 -
Oracle 11g新特性:SQL Query Result Cache
Oracle在Shared_Pool中增加了Server Result Cache结构,新的SQL query Result Cache技术,解决了很多重复查询语句导致资源开销过大的典型问题!极大提高了查询效率。 SQL Query Result Cache:存储查询和查询片段的结果。PL/SQL Function Result Cache:存储函数的结果集。 Result Cache技术适合的场...原创 2018-04-03 09:41:03 · 416 阅读 · 0 评论 -
Oracle 11g ASH报告的生成方法
数据库报ORA-600错误Wed Mar 23 15:28:50 2016Errors in file /u01/app/oracle/diag/rdbms/gtfdb/gtfdb2/trace/gtfdb2_ora_8946.trc (incident=135114):ORA-00600: ?????í?ó?ú??, ????: [kolrghte: hash table not exist]...原创 2018-04-04 09:11:44 · 3546 阅读 · 0 评论 -
Oracle事件之10053 跟踪的trace文件相关解释
一. 10053事件 当一个SQL出现性能问题的时候,可以使用SQL_TRACE 或者 10046事件来跟踪SQL. 通过生成的trace来了解SQL的执行过程。 我们在查看一条SQL的执行计划的时候,只能看到CBO 最终告诉我们的执行计划结果,但是不知道CBO 是根据什么来做的。 如果遇到了执行计划失真,如:一个SQL语句,很明显oracle应该使用索引,但是执行计划却没有使用索引...转载 2018-03-29 10:53:58 · 1990 阅读 · 0 评论 -
oracle 查询计划中的基数cardinality概念
CBO(基于代价的优化器)是RBO(基于规则的优化器)的替代品,从9i开始oracle就建议用户使用CBO来进行SQL的优化。CBO大概的优化原理很简单,他通过对象上的统计信息来计算各个执行计划的代价,然后选择代价较小的执行计划来运行。所以对于CBO来说对象(比如表,索引)上的统计信息就显得十分的重要,不仅要有统计信息,还要保证统计信息是准确的,不准确的统计信息可能会带来灾难性的结果。那么orac...转载 2018-03-29 11:06:58 · 1301 阅读 · 0 评论 -
把Autotrace的权限授予Everyone
通过以下方法可以把Autotrace的权限授予Everyone,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。 D:\oracle\ora92>sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 3 15:16:03 2003Copyright (c) 1982, 2...原创 2018-03-29 13:29:30 · 240 阅读 · 0 评论 -
shared pool之SubPool深度解析
我们知道,从Oracle 9i开始,Shared Pool可以被分割为多个子缓冲池(SubPool)进行管理,以提高并发性,减少竞争。Shared Pool的每个SubPool可以被看作是一个Mini Shared Pool,拥有自己独立的Free List、内存结构以及LRU List。同时Oracle提供多个Latch对各个子缓冲池进行管理,从而避免单个Latch的竞争(Shared Pool...原创 2018-03-29 17:25:31 · 747 阅读 · 0 评论 -
使用insert插入大量数据的个人经验总结
这篇论坛文章根据笔者的个人经验着重介绍了使用insert插入大量数据的常用技巧,更多内容请参考下文: 在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验。 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。 1.i...原创 2018-04-26 10:31:57 · 23192 阅读 · 2 评论 -
oracle sql 第一次查询快, 以后查询慢
大多数情况下,用oracle, 第一次查询慢, 第二次查询肯定比第二次查询快对吧, 但对于这种情况,第一次查询快, 以后查询慢。Cardinality Feedback基数反馈, 是版本11.2中引入的关于SQL 性能优化的新特性,该特性主要针对 统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况, Cardinality基数的计算直接影响到后续的JOIN COST等重要的成本计算评...原创 2018-05-31 11:59:36 · 4291 阅读 · 1 评论 -
shared_pool的KGLHD 一直在快速的消耗memory 造成ora-04031错误
Ora-04031作为数据库较为典型的内存分配错误,它的出现往往意味着数据库的无法使用直接影响用户生产系统的正常运作。最近就遇到了一例,环境如下:数据库版本:Oracle 11.2.0.3操作系统:AIX 6.1物理内存: 64G数据量:300G左右错误现象: 应用无法连接数据库,数据库无响应通过检查后台日志发下报错信息如下:Errors in file/oracle/diag/rdbms/orc...原创 2018-03-30 13:42:18 · 1484 阅读 · 0 评论 -
ORA-600 各个参数含义说明
一. ORA-600 概述ORA-600 是一个非常头疼的一个错误。比如: ORA-00600:internal error code, arguments: [4194], [43], [46], [], [], [], [], [] 这个就是undo 损坏出现故障的一个提示信息。关于这种情况的解决方法,参考blog: Curre...转载 2018-03-30 13:23:36 · 8120 阅读 · 0 评论 -
工具 AWR-Format的使用
强大的AWR-Format的使用 awr格式化利器---AWR Formatter 是chrome插件,安装到chrome浏览器中即可使用来源:http://ask.orasos.com/forum.php?mod=viewthread&tid=24&extra=page%3D1AWR-Format.zip ...转载 2018-03-07 17:16:14 · 1396 阅读 · 0 评论 -
Oracle AWR报告详细分析
Oracle AWR报告详细分析 (文档 ID 1523048.1)AWR 是 Oracle 10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库AWR 是通过对比两次快照(snapshot)收集到的统计...转载 2018-03-07 17:19:20 · 84397 阅读 · 2 评论 -
oracle 优化之按图索骥:SQL中数据倾斜问题
数据倾斜即表中某个字段的值分布不均匀,比如有100万条记录,其中字段A中有90万都是相同的值。这种情况下,字段A作为过滤条件时,可能会引起一些性能问题。 本文通过示例分享部分场景的处理方法 未使用绑定变量使用绑定变量几种特殊场景1测试环境说明数据库版本:ORACLE 11.2.0.4新建测试表tb_test:create tablescott.tb_test as select * from db...原创 2018-03-07 17:43:39 · 2560 阅读 · 0 评论 -
oracle AMM、ASMM区别以及相关用法
一、相关概念解析AMM:automatic memory management(11.1才有的特性) 即让数据库完全管理SGA、PGA的大小,而对于管理员只需要设置一个总的大小(memory_target),数据库会动态的调整SGA、PGA的大小以及其中包含的各个组件大小,如Database buffer cache、Shared pool等等。ASMM:automatic shared memo...原创 2018-03-08 11:24:14 · 11049 阅读 · 0 评论 -
AWR报告参数:DB TIME和DB CPU
一、前言:AWR报告是了解ORACLE运行的一个重要报告,CPU的使用情况是AWR报告的一个重要指标,本文档从单个CPU的维度去解读AWR报告; 二、重要参数介绍:DB Time:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the...原创 2018-03-09 16:23:54 · 6312 阅读 · 0 评论 -
oracle绑定变量使用方法总结
在Oracle中,对于一个提交的sql语句,存在两种可选的解析过程,硬解析和软解析。一个硬解析需要经解析,制定执行路径,优化访问计划等步骤。硬解析不仅仅会耗费大量的cpu,更重要的是会占据重要的闩(latch)资源。唯一使得oracle能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是使用变量来代替sql语句中的常量。绑定变量能够使得每次提交的sql语句都完全一样。1. sqlplus...原创 2018-03-19 11:03:31 · 2933 阅读 · 0 评论 -
cursor_sharing参数设置exact,similar,force的区别
Oracle中为了提高sql的执行效率,需要减少硬解析,实现shared cursor共享,最常见的方法是使用绑定变量,但很多时候由于各种原因未能在开发初期使用绑定变量,对于减少硬解析的目的,退而求其次地方法是设置cursor_sharing.1.准备环境实验环境BALLON@PROD> select * from v$version;BANNER----------------------...原创 2018-03-13 10:16:29 · 3313 阅读 · 0 评论 -
v$sql , v$sqlarea,v$sqltext 区别
1、V$SQL%知多少? 一、select table_name from dict where table_name like 'V$SQL%';V$SQLV$SQLAREAV$SQLAREA_PLAN_HASHV$SQLSTATSV$SQLTEXTV$SQLTEXT_WITH_NEWLINESV$SQL_BIND_CAPTUREV$SQL_BIND_DATAV$SQL_BIND_METADAT...转载 2018-03-20 09:36:15 · 1040 阅读 · 0 评论 -
oracle11g cursor:mutex S导致的load过高的追踪过程详解
--> 问题背景同事电话我,说oracle数据库很慢,很卡,cpu99%了。 1,查看问题现场,cpu高单核不高,load高多核,看到每个核只有20%左右使用了1/5,所以数据库应该没事,没有到故障级别,只是load高已经接近90了,E:\u\azure_cloud\oracle\05.png: 2,看io读写比较低,磁盘io不是瓶颈实时观察,才148,可以看出io性能没有问题,毕竟是ssd...转载 2018-03-30 10:23:31 · 1491 阅读 · 1 评论 -
"KGH: NO ACCESS"内存分配过大,引起的ORA-4031故障
一、故障症状某些时段发现大量ORA-04031报错Errors in file /oracle/diag/rdbms/obie/obie1/trace/obie1_smon_18153542.trc:ORA-00604: error occurred at recursive SQL level 1ORA-04031: unable to allocate 32 bytes of shared m...转载 2018-03-30 11:59:10 · 1120 阅读 · 0 评论 -
oracle解析相关的等待事件(Shared Pool latch/library cache: mutex X/cursor: pin S)
Shared Pool/Library Cache Latch Contention可能的原因sql语句不能被重用,语句没有使用绑定变量,不合适的应用游标缓存大小,频繁的登入或登出,数据库对象上做过ddl操作,共享池太小等在会话级别V$SESSTATparse time CPUparse time elapsedRatio of parse count (hard) / execute count...原创 2018-03-30 16:13:11 · 519 阅读 · 0 评论 -
shared pool 原理
堆管理shared pool是利用堆内存管理方式管理的(KGH:Kernel Generic Heap).从Oracle 9i开始,可以有多个最高级堆(TOP-LEVEL HEAP),最高级堆可以分为多个副堆,副堆下面还拥有下属副堆.堆和副堆的结构基本相同.从物理上来看,一个堆由于多个内存区以LINKED LIST的形式连接组成.一个内存区物理上使用一个GRANULE,一个内存区有多个CHUNK组...转载 2018-03-30 12:44:48 · 930 阅读 · 0 评论 -
ORACLE分区窗口按月按天自动分区
一、建按月自增分区表:1.1建表SQL> create table month_interval_partition_table (id number,time_col date) partition by range(time_col) 2 interval (numtoyminterval(1,'month')) 3 ( 4 partition p_month_1...原创 2018-10-08 09:48:45 · 4161 阅读 · 0 评论