优化
文章平均质量分 67
tlx20093A
这个作者很懒,什么都没留下…
展开
-
oracle TM锁和TX锁
1TX 当进行一般的Update,delete,就会产生TX LOCK,同时还伴随一个TM的保护,不被一些DDL语句破坏对象的定义每个事务只会获得一个TX,但是在每一个受影响的object都会产生一个tm lock;create table t(x int);insert into t select object_id from dba_objects;commit;upd原创 2011-11-22 10:40:54 · 701 阅读 · 0 评论 -
oracle row migration行迁移
问题描述:今天在QQ群里又遇到一小问题:在某个表新添加二个字段后,查询速度明显缓慢。 大家讨论怀疑是行迁移导致, 试了move 一下就ok 行迁移的影响如果你通过一个索引来读这一行,索引会指向原来的块,那个块再指向这个新块。要得到具体的行数据,一般并不是执行两个左右的I/O 就可以得到行数据。单独来看,这不是大问题,甚至根本注意不到。不过,如果这种行所占的比例相当大,而且有大量用户在访原创 2011-12-15 00:05:14 · 727 阅读 · 0 评论 -
学习动态性能表第六篇-(1)-V$SESSION_WAIT
这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。 V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。V$SESSION_WAIT中的常用列SID: session标识EVENT: s转载 2011-12-10 11:14:33 · 499 阅读 · 0 评论 -
ORACLE故障排除--注意事项
1. 在系统良好运作时, 进行一次Statspack! 并将结果文件保存作为以后的判断标准.2. ORACLE中建立一张存放有执行计划的表脚本如下: --建立一张计划表create table plan_hashes( sql_text varchar2(1000), hash_value number,转载 2011-12-09 23:11:10 · 513 阅读 · 0 评论 -
解读sql执行计划
SQL> show user USER 为 "U1" SQL> create table t1 (id int,name varchar2(1000)); 表已创建。 SQL> create table t2 (id int,name varchar2(1000)); 表已创建。 SQL> create index ind_t1 on t1(id); 索引已创建。转载 2011-12-09 16:54:38 · 757 阅读 · 0 评论 -
记QQ群里一次sql优化
QQ群里大侠经常讨论一些优化问题,给大家解决问题,自己也在学优化,记录一下。CREATE OR REPLACE FORCE VIEW "RENKOU"."V_RENKOU_NL" ("NL", "RENSHU") AS SELECT AA.NL, COUNT(*) AS RENSHU FROM (SELECT CASE WHEN原创 2011-12-06 17:34:57 · 947 阅读 · 0 评论 -
转 优化笔记oracle占用90%
优化笔记oracle占用90% 1. 当时知道的topas查看的cpu 使用90%以上.2. 查看wait eventsSELECT a.EVENT, b.SID , b.SERIAL#,c.HASH_VALUE,c.SQL_TEXTFROM v$session_wait a , v$session b , v$sqlarea cWHERE a.SID=转载 2011-11-13 22:30:00 · 578 阅读 · 0 评论 -
oracle pga
1 PGA是Server Process对应的私有空间,其中保存的都是与会话相关的数据和相关信息。2 PGA中,主要包括全局变量、数据结构和控制信息。比如我们常说的Session Cursor,就是在执行一个SQL的时候生成在PGA空间中,与SGA中Shared Cursor对应的SQL执行体。3在空间使用上,session cursor使用的PGA比较少。很多时候,Oracle的性能转载 2011-11-30 23:45:06 · 1626 阅读 · 0 评论 -
优化的基本知识
oracle执行计划解释 一.相关概念 1·rowid,伪列:就是系统自己给加上的,每个表都有一个伪列,并不是物理存在。它不能被修改,删除,和添加,rowid在该行的生命周期是唯一的,如果向数据库插入一列,只会引起行的变化,但是rowid并不会变。 2·recursive sql概念:当用户执行一些SQ转载 2011-11-28 10:49:39 · 410 阅读 · 0 评论 -
oracle 表连结的三种方式(nest loop,sort merge ,hash join)
http://oracle.chinaitlab.com/optimize/714876.html转载 2011-11-28 16:54:08 · 966 阅读 · 0 评论 -
dbms_stats.gather_table_status
在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。首先创建一个分析表,该表是用来保存之前的分析值: SQL> begin 2 dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');3 end; 4 / PL/SQL 过转载 2011-11-24 16:06:07 · 1489 阅读 · 0 评论 -
聚簇因子
聚簇因子我们往往会讨论什么时候用索引,什么时候用全表:大家可能说的最多的是需要的数据量和表里面的数据量占比,有些人说20%以下用索引,有些人说10%以上就不能用索引了,其实除了和数据量有关还有一个非常关键因数就是聚簇因子。 什么是聚簇因子? 我们先看我们的常用的表又叫堆表。堆表的最大特征就是数据的存储独立性,即数据的存储与数据值没有任何关联地被存储在磁盘的任意位转载 2012-06-21 16:48:07 · 2279 阅读 · 0 评论