Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103724924
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-09 21:26:14

作者: | 【转载时请务必以超链接形式标明文章和作者信息及】
链接:
 
在DBA_TABLES字典表中有一个degree字段,这个字段代表并行查询在数据表上的并行度,在RAC环境中,这个参数还和实例有关。
以下生活文档中对于 DEGREE 和 INSTANCES 参数的说明:
DEGREE VARCHAR2(10)      Number of threads per instance for scanning the table
INSTANCES VARCHAR2(10)    Number of instances across which the table is to be scanned

但是注意,当你使用类似如下查询时,你可能无法获得返回值:
SQL> select table_name from dba_tables where degree='1' or degree='DEFAULT';

no rows selected

我们看一下Degree以及instances的记录方式:
SQL> select degree,length(degree) from dba_tables
  2 group by degree;
DEGREE              LENGTH(DEGREE)
-------------------- --------------
  DEFAULT                      10
        1                      10

SQL>select instances,length(instances) from dba_tables
  2  group by instances;
INSTANCES            LENGTH(INSTANCES)
-------------------- -----------------
  DEFAULT                          10
        1                          10
        0                          10
Degree和Instances实际上记录了10个字符,左端用空格补齐。
在 dba_tables 的创建语句中,我们可以找到根本原因,以下是这两个字段的定义来源:
  lpad(decode(t.degree, 32767, 'DEFAULT', nvl(t.degree,1)),10),
  lpad(decode(t.instances, 32767, 'DEFAULT', nvl(t.instances,1)),10),

以上信息来自Oracle10gR2数据库:
SQL> select table_name,owner from dba_tables where degree='  DEFAULT' or instances='  DEFAULT';

TABLE_NAME                    OWNER
------------------------------ ------------------------------
TEST_EXT2                      SYS

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

以下收录dba_tables视图的创建语句:
CREATE OR REPLACE VIEW dba_tables (owner,
                                  table_name,
                                  tablespace_name,
                                  cluster_name,
                                  iot_name,
                                  status,
                                  pct_free,
                                  pct_used,
                                  ini_trans,
                                  max_trans,
                                  initial_extent,
                                  next_extent,
                                  min_extents,
                                  max_extents,
                                  pct_increase,
                                  FREELISTS,
                                  freelist_groups,
                                  LOGGING,
                                  backed_up,
                                  num_rows,
                                  blocks,
                                  empty_blocks,
                                  avg_space,
                                  chain_cnt,
                                  avg_row_len,
                                  avg_space_freelist_blocks,
                                  num_freelist_blocks,
                                  DEGREE,
                                  INSTANCES,
                                  CACHE,
                                  table_lock,
                                  sample_size,
                                  last_analyzed,
                                  partitioned,
                                  iot_type,
                                  TEMPORARY,
                                  secondary,
                                  NESTED,
                                  BUFFER_POOL,
                                  row_movement,
                                  global_stats,
                                  user_stats,
                                  DURATION,
                                  skip_corrupt,
                                  MONITORING,
                                  cluster_owner,
                                  dependencies,
                                  compression,
                                  dropped
                                  )
AS
  SELECT u.NAME, o.NAME,
          DECODE (BITAND (t.property, 2151678048), 0, ts.NAME, NULL),
          DECODE (BITAND (t.property, 1024), 0, NULL, co.NAME),
          DECODE ((BITAND (t.property, 512) + BITAND (t.flags, 536870912)),
                  0, NULL,
                  co.NAME
                ),
          DECODE (BITAND (t.trigflag, 1073741824),
                  1073741824, 'UNUSABLE',
                  'VALID'
                ),
          DECODE (BITAND (t.property, 32 + 64),
                  0, MOD (t.pctfree$, 100),
                  64, 0,
                  NULL
                ),
          DECODE (BITAND (ts.flags, 32),
                  32, TO_NUMBER (NULL),
                  DECODE (BITAND (t.property, 32 + 64),
                          0, t.pctused$,
                          64, 0,
                          NULL
                        )
                ),
          DECODE (BITAND (t.property, 32), 0, t.INITRANS, NULL),
          DECODE (BITAND (t.property, 32), 0, t.MAXTRANS, NULL),
          s.iniexts * ts.BLOCKSIZE,
          DECODE (BITAND (ts.flags, 3),
                  1, TO_NUMBER (NULL),
                  s.extsize * ts.BLOCKSIZE
                ),
          s.minexts, s.maxexts,
          DECODE (BITAND (ts.flags, 3), 1, TO_NUMBER (NULL), s.extpct),
          DECODE (BITAND (ts.flags, 32),
                  32, TO_NUMBER (NULL),
                  DECODE (BITAND (o.flags, 2),
                          2, 1,
                          DECODE (s.lists, 0, 1, s.lists)
                        )
                ),
          DECODE (BITAND (ts.flags, 32),
                  32, TO_NUMBER (NULL),
                  DECODE (BITAND (o.flags, 2),
                          2, 1,
                          DECODE (s.GROUPS, 0, 1, s.GROUPS)
                        )
                ),
          DECODE (BITAND (t.property, 32 + 64),
                  0, DECODE (BITAND (t.flags, 32), 0, 'YES', 'NO'),
                  NULL
                ),
          DECODE (BITAND (t.flags, 1), 0, 'Y', 1, 'N', '?'), t.rowcnt,
          DECODE (BITAND (t.property, 64), 0, t.blkcnt, NULL),
          DECODE (BITAND (t.property, 64), 0, t.empcnt, NULL), t.avgspc,
          t.chncnt, t.avgrln, t.avgspc_flb,
          DECODE (BITAND (t.property, 64), 0, t.flbcnt, NULL),
          LPAD (DECODE (t.DEGREE, 32767, 'DEFAULT', NVL (t.DEGREE, 1)), 10),
          LPAD (DECODE (t.INSTANCES, 32767, 'DEFAULT', NVL (t.INSTANCES, 1)),
                10
              ),
          LPAD (DECODE (BITAND (t.flags, 8), 8, 'Y', 'N'), 5),
          DECODE (BITAND (t.flags, 6), 0, 'ENABLED', 'DISABLED'),
          t.samplesize, t.analyzetime,
          DECODE (BITAND (t.property, 32), 32, 'YES', 'NO'),
          DECODE (BITAND (t.property, 64),
                  64, 'IOT',
                  DECODE (BITAND (t.property, 512),
                          512, 'IOT_OVERFLOW',
                          DECODE (BITAND (t.flags, 536870912),
                                  536870912, 'IOT_MAPPING',
                                  NULL
                                )
                        )
                ),
          DECODE (BITAND (o.flags, 2), 0, 'N', 2, 'Y', 'N'),
          DECODE (BITAND (o.flags, 16), 0, 'N', 16, 'Y', 'N'),
          DECODE (BITAND (t.property, 8192),
                  8192, 'YES',
                  DECODE (BITAND (t.property, 1), 0, 'NO', 'YES')
                ),
          DECODE (BITAND (o.flags, 2),
                  2, 'DEFAULT',
                  DECODE (s.cachehint,
                          0, 'DEFAULT',
                          1, 'KEEP',
                          2, 'RECYCLE',
                          NULL
                        )
                ),
          DECODE (BITAND (t.flags, 131072), 131072, 'ENABLED', 'DISABLED'),
          DECODE (BITAND (t.flags, 512), 0, 'NO', 'YES'),
          DECODE (BITAND (t.flags, 256), 0, 'NO', 'YES'),
          DECODE (BITAND (o.flags, 2),
                  0, NULL,
                  DECODE (BITAND (t.property, 8388608),
                          8388608, 'SYS$SESSION',
                          'SYS$TRANSACTION'
                        )
                ),
          DECODE (BITAND (t.flags, 1024), 1024, 'ENABLED', 'DISABLED'),
          DECODE (BITAND (o.flags, 2),
                  2, 'NO',
                  DECODE (BITAND (t.property, 2147483648),
                          2147483648, 'NO',
                          DECODE (ksppcv.ksppstvl, 'TRUE', 'YES', 'NO')
                        )
                ),
          DECODE (BITAND (t.property, 1024), 0, NULL, cu.NAME),
          DECODE (BITAND (t.flags, 8388608), 8388608, 'ENABLED', 'DISABLED'),
          DECODE (BITAND (t.property, 32),
                  32, NULL,
                  DECODE (BITAND (s.spare1, 2048),
                          2048, 'ENABLED',
                          'DISABLED'
                        )
                ),
          DECODE (BITAND (o.flags, 128), 128, 'YES', 'NO')
    FROM SYS.user$ u,
          SYS.ts$ ts,
          SYS.seg$ s,
          SYS.obj$ co,
          SYS.tab$ t,
          SYS.obj$ o,
          SYS.obj$ cx,
          SYS.user$ cu,
          x$ksppcv ksppcv,
          x$ksppi ksppi
    WHERE o.owner# = u.user#
      AND o.obj# = t.obj#
      AND BITAND (t.property, 1) = 0
      AND BITAND (o.flags, 128) = 0
      AND t.bobj# = co.obj#(+)
      AND t.ts# = ts.ts#
      AND t.file# = s.file#(+)
      AND t.block# = s.block#(+)
      AND t.ts# = s.ts#(+)
      AND t.dataobj# = cx.obj#(+)
      AND cx.owner# = cu.user#(+)
      AND ksppi.indx = ksppcv.indx
      AND ksppi.ksppinm = '_dml_monitoring_enabled'

-The End-

阅读(295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~