Oracle Performance
文章平均质量分 74
blockheading
Oracle rookie
展开
-
分析查询表时统计信息过多的逻辑读
EODA@PROD1> set echo onEODA@PROD1> create table t ( x int );Table created.EODA@PROD1> insert into t values ( 1 );1 row created.EODA@PROD1> exec dbms_stats.gather_table_stats( user, 'T' );PL原创 2016-10-18 00:07:25 · 519 阅读 · 0 评论 -
调用ASH Report
--调用ASH Report--?/rdbms/admin/ashrpt.sqlSYS@PROD1> start ?/rdbms/admin/ashrpt.sqlCurrent Instance~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance----------- ------------ -------- -原创 2017-03-08 19:50:46 · 273 阅读 · 0 评论 -
评估数据库服务器负载
--评估数据库服务器负载--使用脚本来获取数据库的服务器负载。--通过查询v$metric视图来获取当前度量值。SYS@PROD1> start host_load_setup.sqlSYS@PROD1> SYS@PROD1> SYS@PROD1> CREATE TYPE t_host_load AS OBJECT ( 2 begin_time原创 2017-03-08 19:53:15 · 788 阅读 · 0 评论 -
系统级别分析数据库实例负载
--系统级别分析数据库实例负载--1.通过system_activity_sql脚本对v$system_wait_class进行取样,获得平均活动会话数和花费在每个等待级别的时间。--2.通过time_model.sql脚本对v$sys_time_model进行取样,来了解哪个引擎处理数据最多等详细信息。--3.通过active_session.sql脚本对v$sess_tim原创 2017-03-08 19:54:04 · 502 阅读 · 0 评论 -
查看SQL语句信息(脚本sqlstat.sql)
--查看SQL语句信息(脚本sqlstat.sql)SYS@PROD1> @sqlstats.sql 0hwwkmuancxmm 15SYS@PROD1> SET ECHO OFF PROD1 / 2017-03-08-----------------------------------------------------------------------------原创 2017-03-08 20:25:07 · 615 阅读 · 0 评论 -
查询AWR保存策略与创建的快照
--查询AWR保存策略SYS@PROD1> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL---------- -------------------- -------------------- ----------2133791648 +00000 01:00:00.0原创 2017-03-09 21:22:07 · 1362 阅读 · 0 评论 -
Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描
--Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描SYS@PROD1> select ksppinm, indx from x$ksppi where ksppinm like '%db_file_optimi%';KSPPINM INDX------------------------------原创 2017-05-13 21:11:07 · 916 阅读 · 0 评论 -
模拟并消除行迁移(Row Migration)
--什么是行迁移?A situation in which Oracle Database moves a row from one data block to another data block because the row growstoo large to fit in the original block.注:尽管行迁移与行链接是两个不同的事情,但是在oracle内原创 2017-05-16 15:55:06 · 293 阅读 · 0 评论 -
通过添加hint加速insert操作
EODA@PROD1> select count(*) from sys.tt; COUNT(*)---------- 480000Elapsed: 00:00:01.15EODA@PROD1> create table t_ins as select * from sys.tt where 0=1;Table created.Elapsed: 00:00:00.0原创 2017-05-16 16:32:37 · 1267 阅读 · 0 评论 -
收集系统统计信息(无工作负载/工作负载)
--系统统计信息存储在字典表aux_stats$中SYS@PROD1> desc aux_stats$ Name Null? Type ----------------------------------------------------- -------- ------------------------------------ SNAME原创 2017-05-17 22:02:19 · 503 阅读 · 0 评论 -
设置minimize records_per_block表存储情况
--设置minimize records_per_block表存储情况RECORDS_PER_BLOCK参数用于设定每个BLOCK中记录数的最大值,其先找到当前表所有BLOCK中容纳的最大行数,并会把这个数字记录到数据字典,以后任何导致BLOCK行数超过这个数字的插入都会被拒绝。RECORDS_PER_BLOCK参数是为位图索引而生的,能够改善位图索引的存储,减小位图索引的长度。这原创 2017-06-06 20:21:56 · 857 阅读 · 0 评论 -
查询优化器参数optimizer_features_enable
--查询优化器参数optimizer_features_enable--在每个数据库版本中,Oracle都会在查询优化器中引入或启用新的特性。--如果在升级到一个新的版本后希望保留查询优化器的行为,可以通过设置这个参数或语句级别使用hint。--不同版本优化器差异http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams原创 2017-05-22 20:38:54 · 4676 阅读 · 0 评论 -
基于全表扫描计算总体成本cost方法
CBO生成执行计划时需要估算cost值(成本计算),而这种估算是利用对象和系统统计信息,使用特定的公式算法来计算得出的。我们看看使用非工作量统计信息(noworkload)进行全表扫时,CBO是如何计算的。1. 什么是工作量系统统计信息和非工作量统计信息?CBO在进行成本计算时,需要估算从磁盘中读取一定块数所消耗的时间,这势必需要知道CPU的处理性能、磁盘寻道/传输速度这些相关的系统信息。收原创 2017-06-06 21:23:44 · 897 阅读 · 0 评论 -
Oracle获取执行计划的五种方法
--Oracle获取执行计划的五种方法1.执行EXPLAIN PLAN语句然后查询其输出所写入的表。2.查询动态性能视图来显示缓存在库缓存中的执行计划。3.使用实时监控(Real-time Monitoring)来获取关于正在执行或刚刚执行完毕的SQL信息。4.查询自动负载存储库(AWR)。5.激活跟踪功能提供执行计划。-------------------原创 2017-06-10 22:25:59 · 1125 阅读 · 0 评论 -
Oracle PLSQL 几种游标的用法
1。 PL/SQL里的游标可以分为显式和隐式两种,而隐式有分为select into隐式游标和for .. in 隐式游标两种。所以,我们可以认为,有3种游标用法: A. 显式游标 普通显式游标代码:declarecursor c is select tname from tab ; l_tname varchar2(64);begin open c ; l转载 2017-03-03 20:49:07 · 969 阅读 · 0 评论 -
查询动态管理数据库的信息
--查询动态管理数据库的信息数据库引擎提供了动态关联一个数据库会话的机会。客户端标识符(Client identifier):用于标识客户端的64字节长度的字符串,尽管不是非常明确。客户端信息(Client information):用于描述客户端的64字节长度的字符串。模块名称(Module name):用于描述会话中正在使用的模块名称的48字节长度的字符串。动作名称(Act原创 2017-02-23 21:53:11 · 490 阅读 · 0 评论 -
当前会话状态(v$session)
--当前会话状态(v$session)通过v$session视图,不仅可以知道有哪些会话存在,还可以知道他们现在都在做什么。--1.会话的标识(sid、serial#、saddr和audsid),会话是属于BACKGROUND会话还是USER会话(type),以及会话进行初始化的时间(logon_time)。--saddr(session address):表示当前记录的原创 2017-03-02 21:11:37 · 8458 阅读 · 0 评论 -
创建使用program对无效索引进行重建
--创建使用program对无效索引进行重建shell脚本匿名pl/sql创建procedure--模拟将索引不可用SYS@PROD2> alter table scott.emp move;Table altered.SYS@PROD2> alter table scott.dept move;Table altered.SYS@PROD2> select原创 2017-01-06 17:07:42 · 231 阅读 · 0 评论 -
创建调度任务自动完成索引重建
--创建顺序programms-schedule-job其中创建3个programms分别可执行脚本,匿名pl/sql,procedure。--创建P1,P2,P3--创建Schedule--创建job原创 2017-01-06 17:17:05 · 348 阅读 · 0 评论 -
SQL优化指导(STA)与SQL访问指导(SAA)
SQL优化指导(STA) 可以使用SQL优化指导分析SQL语句,并获得性能建议。SQL优化指导的分析来源: 顶级活动:分析当前活动的顶级SQL语句。 SQL优化集:分析用户提供的一组SQL语句。 以往的SQL:分析AWR快照收集的SQL语句中的语句。--实验运行一个超大的sqlEODA@PROD1> desc原创 2017-01-01 16:56:29 · 1936 阅读 · 0 评论 -
使用DBMS_HPROF进行PL/SQL代码探查
--使用DBMS_HPROF进行PL/SQL代码探查通过包dbms_hprof进行管理的调用级别探查器(也称为分层探查器,hirearchical profiler)。优势:1.开启后对开销影响非常小。2.提供调用级别的信息。3.有self time和total time的概念。4.并不需要附加的权限。5.支持native-compiled PL/SQL原创 2017-02-27 20:35:55 · 793 阅读 · 0 评论 -
操作系统统计信息v$osstat
--操作系统统计信息v$osstat如果无法访问数据库服务器,又想得到一些操作系统级别的核心性能指标,可以通过查询v$osstat动态性能视图得到。SYS@PROD1> select stat_name,value,comments from v$osstat;STAT_NAME VALUE COMMENTS---------------------------原创 2017-02-28 21:12:29 · 2226 阅读 · 0 评论 -
等待级别和等待事件相关动态性能视图
--等待级别和等待事件相关动态性能视图--通过查询v$event_name可以得知当前版本有哪些等待事件及其等待级别。SYS@PROD1> select wait_class, count(*) from v$event_name group by rollup(wait_class) order by wait_class;WAIT_CLASS COUNT(*)--原创 2017-02-28 21:12:50 · 491 阅读 · 0 评论 -
度量值(v$metricname v$metric)
度量值(v$metricname v$metric)数据库引擎计算出一个度量值,而这个值对于监控特别有用,这些值在v$metricname视图中列出。--包含IO的度量值SYS@PROD1> select metric_name from v$metricname where metric_name like '%IO%';METRIC_NAME----------原创 2017-03-01 21:04:33 · 1950 阅读 · 0 评论 -
系统和会话统计信息(v$sysstat v$sesstat)
--系统和会话统计信息(v$sysstat v$sesstat)在v$sysstat视图中包含两个关键列:name标识统计信息。value提供与统计信息相关的指标。SYS@PROD1> select name,value from v$sysstat where name like '%commit%';NAME VALUE-----原创 2017-03-01 21:04:59 · 730 阅读 · 0 评论 -
探究死锁事件v$session中的p1,p2,p3
--实验背景:--开启两个session通过update同一个表造成死锁。SYS@PROD1> select sid,event,p1,p2,p3 from v$session where username='SCOTT'; SID EVENT P1 P2 P3---------- -----------------------------原创 2017-01-23 21:14:45 · 3458 阅读 · 0 评论 -
深入理解latch: cache buffers chains
事件背景: 一个客户的数据库发生了宕机事件,查看了数据库的awr报告,原来是由于出现大量的latch: cache buffers chains等待事件导致系统消耗量大量的CPU,最终导致系统hang住;说明: 要理解latch: cache buffers chains并解决这个问题,就需要深入的了解Buffer Cache及其原理。1、Buffer Cache概转载 2016-11-30 23:30:23 · 21051 阅读 · 0 评论 -
选择率和基数简析
--选择率和基数简析选择率(selectivity)是一个介于0和1之间的值,用来表示某个操作所返回的记录数的比例。一个操作返回记录的行数称作基数(cardinality)。**基数 = 选择率 * 行数--创建模拟实验环境SCOTT@PROD1> set echo onSCOTT@PROD1> start /tmp/1.sqlSCOTT@PROD1> SET TERMOUT ON原创 2017-02-21 21:11:40 · 1277 阅读 · 0 评论 -
父子游标不可共享的情况分析
解析操作的结果就是一个父游标和一个子游标存储在库缓存中的共享SQL区中。以下分三个部分讨论一个游标在哪里不能进行共享。1.父游标在哪里不能进行共享。2.父游标可以共享情况下子游标什么时候不能共享。3.执行环境不仅影响执行计划还有可能影响SQL执行结果。--实验1.父游标在哪里不能进行共享。SCOTT@PROD1> DROP TABLE t;Table droppe原创 2017-02-22 16:14:35 · 569 阅读 · 0 评论 -
绑定变量及其相关特性分析
--绑定变量分析一、理论分析1.优势绑定变量在性能方面的优势是他们允许共享库缓存中的父游标,这样就避免了硬解析以及相关的额外开销。2.劣势在某些条件下会对查询优化器隐藏重要的信息。使用字面值时,查询优化器总能够做出最接近的估算。二、实验1.绑定变量共享游标实验2.绑定变量扫视(bind variable peeking)导致的劣势实验。3.自适应游标共享(ada原创 2017-02-22 20:30:41 · 533 阅读 · 0 评论 -
Oracle诊断事件列表
我们可以通过以下代码查询得到Oracle的诊断事件及说明,通过这些,我想就足够了。列举在这里给自己参考。1.代码SET linesize 120SET feedback offSET SERVEROUTPUT ONDECLAREerr_msg VARCHAR2(120);BEGINdbms_output.enable (1000000);FOR转载 2017-06-10 22:31:06 · 13360 阅读 · 0 评论