eygle.com   eygle.com
eygle.com  
 

« August 10, 2009 | Blog首页 | August 12, 2009 »



August 11, 2009

20090811-墨墨、书书、Oracle

作者:eygle

出处:http://blog.eygle.com

记录一下这一天:
1.墨墨
今天,墨墨2岁了,他已经能够清晰的表达自己的思想,能够背唐诗,分辨数字,字母。
但是对9和6常有困惑。对英文和中文有困惑。

我教过他one、two、three。。。结果教他背唐诗:万条垂下绿丝绦 时
他就说:one two垂下绿丝绦.....

2.观止
我正在编辑的下一本书,马上就要给出版社交稿了,今天编辑老杨(Yangtingkun)的文章,将所有内容读了一遍,心头涌现两个字:观止!

老杨的钻研精神和编程功力让我佩服不已。

新书目前编辑的结构如下,还在调整与变化之中,但是整体内容基本已经确定:

├─第一篇 DBA工作手记
│      01.Eygle的DBA工作手记-Eygle.doc
│      02.Yangtingkun的DBA工作手记-Yangtingkun.doc
│      04.BanPing的DBA工作手记-Banping.doc

├─第三篇 索引调优篇
│      01.合理利用索引解决性能问题.doc
│      02.索引结构与锁定位.doc
│      03.索引访问与数据读取.doc

├─第二篇 诊断案例篇
│      01.ASM案例分析与诊断.doc
│      02.监听故障的诊断与分析.doc
│      03.ORA系列错误与诊断.doc
│      04.ORA-01200错误裸设备恢复.doc
│      05.Oracle数据库无响应故障的处理.doc
│      06.RAC环境诊断案例一则.doc

└─第四篇 性能优化篇
        01.CBO、执行计划与统计信息案例.doc
        02.SQL优化与调整.doc
        03.Oracle数据库性能与统计信息.doc
        04.聚簇因子、柱状图与执行计划.doc
        05.SQL优化之Everything is possible.doc
        06.表碎片及分页查询优化.doc
        07.一次排序的调整与优化.doc


3.Oracle 11gR2
据说Oracle Database 11gR2将在OOW之前全球发布,发布时间流传是:8月15日。
期待这一版本已久,希望是激动人心的一天!





Posted by eygle at 6:40 PM | Comments (10)


数据字典视图之:V$LATCH、X$KSLLT、X$KSLLD 结构

作者:eygle

出处:http://blog.eygle.com

v$latch视图记录了数据库重要的Latch信息,该信息来自底层基础表,由内存中提取,其结构为(来自Oracle 10gR2):
SELECT d.inst_id, d.kslldadr, la.latch#, d.kslldlvl, d.kslldnam, d.kslldhsh,
       la.gets, la.misses, la.sleeps, la.immediate_gets, la.immediate_misses,
       la.waiters_woken, la.waits_holding_latch, la.spin_gets, la.sleep1,
       la.sleep2, la.sleep3, la.sleep4, la.sleep5, la.sleep6, la.sleep7,
       la.sleep8, la.sleep9, la.sleep10, la.sleep11, la.wait_time
  FROM x$kslld d,
       (SELECT   kslltnum latch#, SUM (kslltwgt) gets, SUM (kslltwff) misses,
                 SUM (kslltwsl) sleeps, SUM (kslltngt) immediate_gets,
                 SUM (kslltnfa) immediate_misses, SUM (kslltwkc)
                                                                waiters_woken,
                 SUM (kslltwth) waits_holding_latch, SUM (ksllthst0)
                                                                    spin_gets,
                 SUM (ksllthst1) sleep1, SUM (ksllthst2) sleep2,
                 SUM (ksllthst3) sleep3, SUM (ksllthst4) sleep4,
                 SUM (ksllthst5) sleep5, SUM (ksllthst6) sleep6,
                 SUM (ksllthst7) sleep7, SUM (ksllthst8) sleep8,
                 SUM (ksllthst9) sleep9, SUM (ksllthst10) sleep10,
                 SUM (ksllthst11) sleep11, SUM (kslltwtt) wait_time
            FROM x$ksllt
        GROUP BY kslltnum) la
 WHERE la.latch# = d.indx;
由其体系结构可以看到,v$latch来自两个底层表:X$KSLLT和X$KSLLD.
这两个表名称及含义如下:
X$KSLLT [K]ernel [S]ervice [L]ock Management Latch statistics + Child latches

X$KSLLD [K]ernel [S]ervice [L]ock Management Latch [D]escriptor (name)

X$KSLLD字段结构定义如下:
SQL> desc x$kslld
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ADDR                                               RAW(4)
 INDX                                               NUMBER
 INST_ID                                            NUMBER
 KSLLDNAM                                           VARCHAR2(50)
 KSLLDADR                                           RAW(4)
 KSLLDLVL                                           NUMBER
 KSLLDHSH                                           NUMBER
X$KSLLT定义结构如下:
SQL> desc x$ksllt
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ADDR                                               RAW(4)
 INDX                                               NUMBER
 INST_ID                                            NUMBER
 KSLLTNUM                                           NUMBER
 KSLLTNGT                                           NUMBER
 KSLLTNFA                                           NUMBER
 KSLLTWGT                                           NUMBER
 KSLLTWFF                                           NUMBER
 KSLLTWKC                                           NUMBER
 KSLLTWSL                                           NUMBER
 KSLLTWTH                                           NUMBER
 KSLLTMSX                                           NUMBER
 KSLLTMXS                                           NUMBER
 KSLLTMSW                                           NUMBER
 KSLLTWSX                                           NUMBER
 KSLLTWXS                                           NUMBER
 KSLLTWSW                                           NUMBER
 KSLLTHST0                                          NUMBER
 KSLLTHST1                                          NUMBER
 KSLLTHST2                                          NUMBER
 KSLLTHST3                                          NUMBER
 KSLLTHST4                                          NUMBER
 KSLLTHST5                                          NUMBER
 KSLLTHST6                                          NUMBER
 KSLLTHST7                                          NUMBER
 KSLLTHST8                                          NUMBER
 KSLLTHST9                                          NUMBER
 KSLLTHST10                                         NUMBER
 KSLLTHST11                                         NUMBER
 KSLLTCNM                                           NUMBER
 KSLLTWHR                                           NUMBER
 KSLLTWHY                                           NUMBER
 KSLLTWTT                                           NUMBER
 KSLLTHDT                                           NUMBER
 KSLLTDNT                                           NUMBER
 KSLLTWTW                                           NUMBER
 YIELDS_KSLLT                                       NUMBER
 MISSES_WL_KSLLT                                    NUMBER
 YIELDS_WL_KSLLT                                    NUMBER
 SLEEPS_WL_KSLLT                                    NUMBER
 CLASS_KSLLT                                        NUMBER
V$LATCH视图在Oracle 10gR2里显示大约有388种不同的Latch:
SQL> select count(*) from v$latch;

  COUNT(*)
----------
       388


Execution Plan
----------------------------------------------------------
Plan hash value: 3943956501

--------------------------------------------------------------------------------
| Id  | Operation            | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |         |     1 |    39 |     2 (100)| 00:00:01 |
|   1 |  SORT AGGREGATE      |         |     1 |    39 |            |          |
|*  2 |   HASH JOIN          |         |     1 |    39 |     2 (100)| 00:00:01 |
|*  3 |    FIXED TABLE FULL  | X$KSLLD |     1 |    26 |     0   (0)| 00:00:01 |
|   4 |    VIEW              |         |   100 |  1300 |     1 (100)| 00:00:01 |
|   5 |     HASH GROUP BY    |         |   100 | 27300 |     1 (100)| 00:00:01 |
|   6 |      FIXED TABLE FULL| X$KSLLT |   100 | 27300 |     0   (0)| 00:00:01 |
--------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("LA"."LATCH#"="D"."INDX")
   3 - filter("D"."INST_ID"=USERENV('INSTANCE'))


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        412  bytes sent via SQL*Net to client
        400  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed
-The End-

Posted by eygle at 12:45 PM | Comments (2)


数据字典视图之:V$LATCH_CHILDREN 结构

作者:eygle

出处:http://blog.eygle.com

V$LATCH视图在选取X$KSLLT记录时,进行了Group By及SUM运算,从而得出了一个汇总信息,而V$LATCH_CHILDREN视图并不进行汇总运算,所以也就显示了子Latch的相关信息,以下结构信息来自Oracle database 10gR2:
SELECT t.inst_id, t.addr, t.kslltnum, t.kslltcnm, n.kslldlvl, n.kslldnam,
       n.kslldhsh, t.kslltwgt, t.kslltwff, t.kslltwsl, t.kslltngt, t.kslltnfa,
       t.kslltwkc, t.kslltwth, t.ksllthst0, t.ksllthst1, t.ksllthst2,
       t.ksllthst3, t.ksllthst4, t.ksllthst5, t.ksllthst6, t.ksllthst7,
       t.ksllthst8, t.ksllthst9, t.ksllthst10, t.ksllthst11, t.kslltwtt
  FROM x$ksllt t, x$kslld n
 WHERE t.kslltcnm > 0 AND t.kslltnum = n.indx;
这是原始的,全部的数据输出!

-The End-



Posted by eygle at 8:59 AM | Comments (1)



CopyRight © 2004-2008 eygle.com, All rights reserved.