Oracle中 HWM与数据库性能的探讨 – Oracle Life

Oracle中 HWM与数据库性能的探讨 – Oracle Life

« 异步I/O成绩,Oracle在Solaris的VxFS |

视频博客主页

| oracle创纪录的库做成某事行/行互连成绩 »

在Oracle HWM与创纪录的库机能的议论

本文所议论的是oracle中在附近tableHWM的容量,主要容量包孕。:

1.   
是什么HWM

2.   
HWM以任何方法自己谋生。

3.   
HWM对机能的碰撞

4.   
既然一定加法,健康状况如何加法?HWM

5.   
对立的事物稍许的碰撞HWM的手术

除特殊阐明外,本章的自己的事物试验都是以试验为根底的。:win2000,oracle9201,bolcksize 8K的试验仪式。

一、是什么HWM

HWMhigh water mark,高水位表上测定的水位记,同样观念在segment内存的容量更为重要。.复杂来说,HWM这是本人segment已用不必block的边线.

oracleconcept中属于HWM解说如次:在本人segment中,HWM是运用空的和未运用空的中间的的结束。。当销路本人新的使自在块时,存在使自在列表做成某事块缺乏邀请。,HWM排列方向块将被标识表记标帜为运用。,当时的HWM将自己谋生移到下本人未运用的块。

本人了解,oracle,内存创纪录的的最小单位是block,属于本人段(表倡导者),这都是很多。block结合的,这些block民族性分为运用和未运用两属型。,一般而言,在HWM较低的的block它都是经过创纪录的内存的。. 如图:

从下面的以图表画出,本人可以清澈的地记录它。,本人segment做成某事block的散布位置。在HWM左的block它被运用。,或许可以用来内存创纪录的。。而HWM向右的block不克不及用于内存创纪录的。当HWM左的block空的使用后,必要内存新的创纪录的。,你怎样凑合这件事?oracle向向右自己谋生HWM,向右的病号。block移到HWM向左走,这时HWM左的block它加法了。,当时的有本人新的block空的可供运用。

Oracle9i开端,引进了一种新的。segment空的经管方法,即ASSMauto segment space management)。这种segment在空的经管和过来FLM自在列表 management)是卓越的的。这边,让本人复杂引见一下。。

FLM时尚下,属于本人segmentHWM以下自己的事物block空的的使用,是经过自在列表来经管的,自在列表状态segment的第本人extent中。本人block一定那时朝向自在列表伸突出,支持物PCTUSEDPCTFREE两决定因素。由于自在列表经管时尚与朝向segment header的位置,设想是本人segment在高接着发生DML手术,必然性的涌现header争用的位置,憎恨本人可以使用增长自在列表s自在列表 group免除这种位置的道路。

因而从oracle92开端,风浪区了ASSM同样新的本人segmeng空的经管的方法(也称为Bitmap Managed Segments, 自在列表被位图掉换,运用位图来经管block空的的使用,这些位图块是疏散的。segment中。ASSM经管的segment你什么都可以丢下PCTUSEDNEXTFREELISTS命名的值。

运用ASSM有稍许的限度局限:

ASSM仅有的朝向Local Managetablespace伸突出;

不克不及运用ASSM安排暂时tablespace

LOB不克不及在命名的自动化机器或设备段空的中经管抱反感。tablespace中间的制造硬币。

本人复杂地引见了它。ASSMFLM观念与矛盾,接下来,让本人看一眼这两种东西。segmeng空的经管时尚HWM乐趣有什么卓越的?。

二、事先指导的创作tableHWM的卓越的位置

FLM经管的table:本人率先安排了同样名声。HWMtablespace,命名的非自动化机器或设备段空的经管,extent上胶料为40K。并在下面制造硬币它table TEST_HWMPCTFREE 40 PCTUSED 20

SQL>
connect dlinger/dlinger@oracle9i_dl

连接到:

Oracle9i
Enterprise Edition Release 9.2.0.1.0 – Production

With
the Partitioning, OLAP and Oracle Data Mining options

JServer
Release 9.2.0.1.0 – Production

SQL>
CREATE TABLESPACE HWM

2      DATAFILE
”D:\ORACLE\ORADATA\ORACLE9I\”

3      SIZE 50M uniform size 40K;

表空的已安排。

SQL> select
TABLESPACE_NAME,BLOCK_SIZE,EXTENT_MANAGEMENT,

  2  ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT

  3  from dba_tablespaces where TABLESPACE_NAME
= ”HWM”;

TABLESPACE_NAME BLOCK_SIZE EXTENT_MANAGEMENT
ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

————— ———- —————–
————— ————————

HWM            
      8192 LOCAL             UNIFORM         MANUAL

SQL>
alter user dlinger default tablespace hwm;

用户已更改。

SQL>
CREATE TABLE TEST_HWM  (ID char(2000) ,
NAME char(2000) )

  2 
STORAGE ( MINEXTENTS 2)  PCTFREE
40 PCTUSED 20;

已安排表。

SQL>select
EXTENT_ID,FILE_ID,RELATIVE_FNO,BLOCK_ID,BLOCKS

from dba_extents

  2 
where segment_name=”TEST_HWM” ;

 EXTENT_ID   
FILE_ID RELATIVE_FNO  
BLOCK_ID     BLOCKS

———-
———- ———— ———- ———-

         0         11           11          9          5

         1         11           11         14          5

SQL>
alter system dump datafile 11 block 9;

零碎已被更改。。

Table
TEST_HWM
状态datafile 11 segment headerblock9,本人dumpblock9来看一眼:

***
2004-06-09 20:31:

***
SESSION ID:() 2004-06-09 20:31:

Start
dump data blocks tsn: 14 file#: 11 minblk 9 maxblk 9

buffer
tsn: 14 rdba: 0x02c00009 (11/9)

scn: 0x0000.013e974e
seq: 0x01 flg: 0x00 tail: 0x974e1001

frmt:
0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER – UNLIMITED

  Extent Control Header

 
—————————————————————–

  Extent Header:: spare1: 0      spare2: 0      #extents: 2      #blocks: 9    

                  last map  0x00000000 
#maps: 0      offset: 4128 

      Highwater::  0x02c0000a  ext#: 0     
blk#: 0      ext size: 4    

  #blocks in seg. HDR的 自在列表s: 0    

  #blocks below: 0    

  mapblk  0x00000000 
offset: 0    

                   Unlocked

     Map Header:: next  0x00000000 
#extents: 2    obj#: 32377  flag: 0x40000000

  Extent Map

 
—————————————————————–

   0x02c0000a 
length: 4    

   0x02c0000e 
length: 5    

  nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 0

  SEG LST:: flg: UNUSED lhd: 0x00000000 ltl:
0x00000000

End
dump data blocks tsn: 14 file#: 11 minblk 9 maxblk 9

dumptrace用纸覆盖,本人可以利润同样新闻:

本人可以记录Highwater::  0x02c0000aFLMsegment下,事先指导的创作tableHWM它是从第本人extent的第二的个block开端的。为segment header 把非常。本人可以从这边记录它。:

Extent Map

  
—————————————————————–

   0x02c0000a 
length: 4    

解说前extent进展的block4

本人在这边记录的制造Windows 默认值。自在列表 1在以下养护增加。在FLM下,设想是对的segment设置了自在列表 groups N,则HWM表明最早的 N2block,当N+2 > initextentblock数时,将送还ORA-03237的错误新闻,这边tablespace HWMextent40Kblock_size 8K

SQL>  CREATE TABLE TEST_HWM2  (ID char(2000) , NAME char(2000) )

  2  
STORAGE ( MINEXTENTS 2 自在列表 groups 4)  PCTFREE 40 PCTUSED 20;

 CREATE TABLE TEST_HWM2  (ID 数字(10) , NAME char(2000) )

*

ERROR 状态最早的 1 :

ORA-03237:
在表空的中 (HWM) 无法分派命名上胶料的初始区域。

ASSM下,位置以任何方法?

本人制造硬币了同样名字ASSMtablespace,命名的自动化机器或设备段空的经管,extent上胶料为40K。并在下面制造硬币它table TEST_HWM1,当心,这边本人只命名PCTFREE 40,由于PCTUSEDASSM下的segment中是病号的。

SQL>
CREATE TABLESPACE ASSM

2      DATAFILE
”D:\ORACLE\ORADATA\ORACLE9I\”

3      SIZE 50M uniform size 40K segment
space management auto;

表空的已安排。

SQL>
select TABLESPACE_NAME,BLOCK_SIZE,EXTENT_MANAGEMENT,

  2 
ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT

  3 
from dba_tablespaces where TABLESPACE_NAME = 表

TABLESPACE_NAME
BLOCK_SIZE EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

—————
———- —————– ————— ————————

ASSM                  8192 LOCAL             UNIFORM         AUTO

SQL>
CREATE TABLE TEST_HWM1  (ID char(2000),
NAME char(2000) )

  2 
Tablespace ASSM

  3 
STORAGE ( MINEXTENTS 2)  PCTFREE
40;

已安排表。

SQL>
select EXTENT_ID,FILE_ID,RELATIVE_FNO,BLOCK_ID,BLOCKS

  2 
from dba_extents

  3 
where segment_name=”TEST_HWM1” ;

 EXTENT_ID   
FILE_ID RELATIVE_FNO  
BLOCK_ID     BLOCKS

———-
———- ———— ———- ———-

         0   
     12           12          9          5

         1         12           12         14          5

SQL>  alter system dump datafile 12 block min 9
block max 11;

零碎已被更改。。

FMT下,segment的第本人block是内存segment header的,在本例中,ASSM下,oracle运用segment反正在前面3block来内存segment header。这边,本人dump 911block新闻。让本人设法。dump总算和总算FMT下有什么卓越的:

Start
dump data blocks tsn: 15 file#: 12 minblk 9 maxblk 11

buffer
tsn: 15 rdba: 0x03000009 (12/9)

scn:
0x0000.01ca6d7f seq: 0x02 flg: 0x00 tail: 0x6d7f2002

frmt:
0x02 chkval: 0x0000 type: 0x20=FIRST LEVEL BITMAP BLOCK

Dump of
First Level Bitmap Block

 ——————————–

   nbits : 4 nranges: 2         parent dba:  0x0300000a  
poffset: 0

   unformatted: 7       total: 10        first useful block: 3

   owning instance : 1

   instance ownership changed at

   Last successful Search

   Freeness Status:  nf1 0     
nf2 0      nf3 0      nf4 0

   Extent Map Block Offset: 4294967295

   First free datablock : 3

   Bitmap block lock opcode 3

   Locker xid:     : 

      Highwater:: 
0x0300000c
  ext#: 0      blk#: 3      ext size: 5

  #blocks in seg. HDR的 自在列表s: 0

  #blocks below: 0

  mapblk 
0x00000000  offset: 0

  HWM Flag: HWM Set

 
——————————————————–

  DBA Ranges :

  ——————————————————–

   0x03000009 
Length: 5      Offset: 0

   0x0300000e 
Length: 5      Offset: 5

   0:元创纪录的   1:元创纪录的   2:元创纪录的   3:版式

   4:版式   5:版式   6:版式   7:版式

   8:版式   9:版式

 
——————————————————–

buffer
tsn: 15 rdba: 0x0300000a (12/10)

scn:
0x0000.01ca6d7e seq: 0x02 flg: 0x00 tail: 0x6d7e2102

frmt:
0x02 chkval: 0x0000 type: 0x21=SECOND LEVEL BITMAP BLOCK

Dump of
Second Level Bitmap Block

   number: 1       nfree: 1       ffree: 0      pdba:     0x0300000b

  手术码:0

 xid:

  L1 Ranges :

 
——————————————————–

   0x03000009 
Free: 5 Inst: 1

  ——————————————————–

buffer
tsn: 15 rdba: 0x0300000b (12/11)

scn:
0x0000.01ca6d80 seq: 0x01 flg: 0x00 tail: 0x6d802301

frmt:
0x02 chkval: 0x0000 type: 0x23=PAGETABLE SEGMENT HEADER

  Extent Control Header

 
—————————————————————–

  Extent Header:: spare1: 0      spare2: 0      #extents: 2      #blocks: 10

                  last map  0x00000000 
#maps: 0      offset: 2716

      Highwater::  0x0300000c 
ext#: 0      blk#: 3      ext size: 5

  #blocks in seg. HDR的 自在列表s: 0

  #blocks below: 0

  mapblk 
0x00000000  offset: 0

                   Unlocked

 
——————————————————–

  Low HighWater Mark :

      Highwater::  0x0300000c 
ext#: 0      blk#: 3      ext size: 5

  #blocks in seg. HDR的 自在列表s: 0

  #blocks below: 0

  mapblk 
0x00000000  offset: 0

  Level 1 BMB for High HWM block: 0x03000009

发表评论

电子邮件地址不会被公开。 必填项已用*标注

© 2018 新2网址