`

SSM自动段空间管理 简介

 
阅读更多

因为ASSM的官方文档很少,经过多次的查证之后,终于弄明白了ASSM管理(BMB段管理)的内部机理,现在发表给大家共享.

因为资料有限,如果有错误,请大家指正 
为了进一步让大家明白ASSM,先说明ASSM的基本情况! 
----------------------------------------------------------------------------------------------------- 
在920以前,表的剩余空间的管理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此容易引起往往容易引起段头的争用与空间的浪费(其实这一点并不明显),最主要的还是因为需要DBA 花费大量的精力去管理这些争用并监控表的空间利用。 
自动段空间管理(ASSM),它首次出现在Oracle920里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。
让我们看看位图freelist是如何实现的。我会从使用区段空间管理自动参数创建tablespace开始: 
create tablespace demo 
datafile '/ora01/oem/demo01.dbf ' 
size 5m 
EXTENT MANAGEMENT LOCAL            -- Turn on LMT (本地管理表空间)

SEGMENT SPACE MANAGEMENT AUTO       -- Turn on ASSM; 

 

一旦你定义好了tablespace,那么表和索引就能够使用各种方法很容易地被移动到新的tablespace里,带有ASSM的本地管理tablespace会略掉任何为PCTUSED、NEXT和FREELISTS所指定的值。

 

当表格或者索引被分配到这个tablespace以后,用于独立对象的PCTUSED的值会被忽略(在自动段空间管理中,没有prtused参数),而Oracle9i会使用位图数组来自动地管理tablespace里表格和索引的freelist。对于在LMT(本地管理表空间)的tablespace内部创建的表格和索引而言,这个NEXT扩展子句是过时的,因为由本地管理的tablespace会管理它们。但是,INITIAL参数仍然是需要的,因为Oracle不可能提前知道初始表格加载的大小。对于ASSM而言,INITIAL最小的值是三个块。 

 

新的管理机制用位图来跟踪或管理每个分配到对象的块,每个块有多少剩余空间根据位图的状态来确定,如>75%,50%-75%,25%-50%和<25%,也就是说位图其实采用了四个状态位来代替以前的pctused(注意是数据块的一个参数,不是段的),什么时候该利用该数据块则由设定的pctfree来确定。 

 

使用ASSM的一个巨大优势是,位图freelist肯定能够减轻缓冲区忙等待(buffer busy wait)的负担,这个问题在Oracle9i以前的版本里曾是一个严重的问题 

在没有多个freelist的时候,每个Oracle表格和索引在表格的头部都曾有一个数据块,用来管理对象所使用的剩余区块,并为任何SQL插入声明所创建的新数据行提供数据块。当数据缓冲内的数据块由于被另一个DML事务处理锁定而无法使用的时候,缓冲区忙等待就会发生。当你需要将多个任务插入到同一个表格里的时候,这些任务就被强制等待,而同时Oracle会在同时分派剩余的区块,一次一个。

 

有了ASSM之后,Oracle宣称显著地提高了DML并发操作的性能,因为(同一个)位图的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。根据Oracle的测试结果,使用位图freelist会消除所有分段头部(对资源)的争夺,还能获得超快的并发插入操作 

 

尽管ASSM显示出了令人激动的特性并能够简化Oracle DBA的工作,但是Oracle9i的位图分段管理还是有一些局限性的: 
· 一旦DBA被分配之后,它就无法控制tablespace内部的独立表格和索引的存储行为。 
· 大型对象不能够使用ASSM,而且必须为包含有LOB数据类型的表格创建分离的tablespace。 
· 你不能够使用ASSM创建临时的tablespace。这是由排序时临时分段的短暂特性所决定的。 

www.ixdba.net


· 只有本地管理的tablespace才能够使用位图分段管理。 

· 使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的时候可能会出现性能上的问题。

 

ASSM到底是怎么回事,表是怎么结构的呢? 
---------------------------------------------------------------------------------- 
关键字:ASSM,自动段管理 
BMB Segment 位图块段管理 

1、我们先创建一个本地管理的表空间,采用段自动管理方式 
SQL>

create tablespace demo 
datafile '/ora01/oem/demo01.dbf ' 
size 50m 
EXTENT MANAGEMENT LOCAL                        --一定是本地管理 
SEGMENT SPACE MANAGEMENT AUTO;       --ASSM管理的标志

2、创建同样一个表 

[color=navy]SQL> 

create table demotab ( x number ) tablespace demo 
storage (initial 1000K); 
Table created 
我们指定初试区间大小是1000K 

SQL> 

select t.table_name,t.initial_extent,t.next_extent,t.pct_free,t.pct_used fromuser_tables t where t.table_name = 'DEMOTAB'; 
TABLE_NAME        INITIAL_EXTENT    NEXT_EXTENT   PCT_FREE       PCT_USED 
-----------------       -------------             --------------       -----------             ---------- 
DEMOTAB              1024000                                           10  
可以看到,NEXT_EXTENT与PCT_USED都为空。 

3、执行该过程,检查表的初始状态 
SQL> exec show_space('demotab'); 
Total Blocks............................128 
Total Bytes.............................1048576 
Unused Blocks...........................125 
Unused Bytes............................1024000 
Last Used Ext FileId....................7 
Last Used Ext BlockId...................8 
Last Used Block.........................3 

从这里我们能看到一些该表的特性,其中最引人注意的就是表头了,占用了三个块的大小(128-125)
另外一个注意的地方就是该表从第8个块开始,但是实际上这里是错误的,应当是从第9个块开始,文件头占用了64K的空间等于8个块。 
我们从dba_extent中也能看到这样的信息,实际上是从第9个块开始的。 

SQL> select t.segment_name,t.extent_id,t.block_id fromdba_extents twhere t.segment_name = 'DEMOTAB'; 
SEGMENT_NAME                 EXTENT_ID                           BLOCK_ID 
--------------------------          ----------                                 ---------- 
DEMOTAB                                0                                              9 
DEMOTAB                                1                                             17 
…… 
从这里可以看到,第一个区间的开始块是9 

4、我直接开始分析第9,10,11个块(段头) 
SQL> alter system dump datafile 7 block 9; 
System altered 
SQL> alter system dump datafile 7 block 10; 
System altered 
SQL> alter system dump datafile 7 block 11; 
System altered

Start dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9 

 


buffer tsn: 6 rdba: 0x06800009 (7/9) 
scn: 0x0000.00181a2c seq: 0x01 flg: 0x04 tail: 0x1a2c2001 
frmt: 0x02 chkval: 0x30a6 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 0 
unformatted: 13 total: 16 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 0 
Locker xid: : 0x0000.000.00000000 
Highwater:: 0x0680000c ext#: 0 blk#: 3 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
HWM Flag: HWM Set 
-------------------------------------------------------- 
DBA Ranges : 
-------------------------------------------------------- 
0x06800009 Length: 8 Offset: 0 
0x06800011 Length: 8 Offset: 8 

[color=red]0:Metadata 1:Metadata 2:Metadata 3:unformatted 
4:unformatted 5:unformatted 6:unformatted 7:unformatted 
8:unformatted 9:unformatted 10:unformatted 11:unformatted 
12:unformatted 13:unformatted 14:unformatted 15:unformatted [/color] 
-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9 

Start dump data blocks tsn: 6 file#: 7 minblk 10 maxblk 10 
buffer tsn: 6 rdba: 0x0680000a (7/10) 
scn: 0x0000.00181a39 seq: 0x01 flg: 0x04 tail: 0x1a392101 
frmt: 0x02 chkval: 0x2738 type: 0x21=SECOND LEVEL BITMAP BLOCK 
Dump of Second Level Bitmap Block 
number: 8 nfree: 8 ffree: 0 pdba: 0x0680000b 
opcode:0 
xid: 
L1 Ranges : 
-------------------------------------------------------- 
[color=red]0x06800009 Free: 5 Inst: 1 
0x06800019 Free: 5 Inst: 1 
0x06800029 Free: 5 Inst: 1 
0x06800039 Free: 5 Inst: 1 
0x06800049 Free: 5 Inst: 1 
0x06800059 Free: 5 Inst: 1 
0x06800069 Free: 5 Inst: 1 
0x06800079 Free: 5 Inst: 1 [/color] 

-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 10 maxblk 10 

Start dump data blocks tsn: 6 file#: 7 minblk 11 maxblk 11 
buffer tsn: 6 rdba: 0x0680000b (7/11) 
scn: 0x0000.00181a3d seq: 0x01 flg: 0x04 tail: 0x1a3d2301 
frmt: 0x02 chkval: 0x4904 type: 0x23=PAGETABLE SEGMENT HEADER 
Extent Control Header 
----------------------------------------------------------------- 
Extent Header:: spare1: 0 spare2: 0 #extents: 16 #blocks: 128 
last map 0x00000000 #maps: 0 offset: 2716 
[color=red]Highwater:: 0x0680000c[/color] ext#: 0 blk#: 3 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
Unlocked 
-------------------------------------------------------- 
Low HighWater Mark : 
[color=red]Highwater:: 0x0680000c [/color] ext#: 0 blk#: 3 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
Level 1 BMB for High HWM block: 0x06800009 
Level 1 BMB for Low HWM block: 0x06800009 
-------------------------------------------------------- 
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0 
L2 Array start offset: 0x00001434 
First Level 3 BMB: 0x00000000 
L2 Hint for inserts: 0x0680000a 
[color=red]Last Level 1 BMB: 0x06800079 
Last Level II BMB: 0x0680000a 
Last Level III BMB: 0x00000000 [/color] 
Map Header:: next 0x00000000 #extents: 16 obj#: 29929 flag: 0x20000000 
Extent Map 
----------------------------------------------------------------- 
0x06800009 length: 8 
0x06800011 length: 8 
0x06800019 length: 8 
0x06800021 length: 8 
0x06800029 length: 8 
0x06800031 length: 8 
0x06800039 length: 8 
0x06800041 length: 8 
0x06800049 length: 8 
0x06800051 length: 8 
0x06800059 length: 8 
0x06800061 length: 8 
0x06800069 length: 8 
0x06800071 length: 8 
0x06800079 length: 8 
0x06800081 length: 8 

Auxillary Map 
-------------------------------------------------------- 
[color=red]Extent 0 : L1 dba: 0x06800009 Data dba: 0x0680000c 
Extent 1 : L1 dba: 0x06800009 Data dba: 0x06800011 
Extent 2 : L1 dba: 0x06800019 Data dba: 0x0680001a 
Extent 3 : L1 dba: 0x06800019 Data dba: 0x06800021 
Extent 4 : L1 dba: 0x06800029 Data dba: 0x0680002a 
Extent 5 : L1 dba: 0x06800029 Data dba: 0x06800031 
Extent 6 : L1 dba: 0x06800039 Data dba: 0x0680003a 
Extent 7 : L1 dba: 0x06800039 Data dba: 0x06800041 
Extent 8 : L1 dba: 0x06800049 Data dba: 0x0680004a 
Extent 9 : L1 dba: 0x06800049 Data dba: 0x06800051 
Extent 10 : L1 dba: 0x06800059 Data dba: 0x0680005a 
Extent 11 : L1 dba: 0x06800059 Data dba: 0x06800061 
Extent 12 : L1 dba: 0x06800069 Data dba: 0x0680006a 
Extent 13 : L1 dba: 0x06800069 Data dba: 0x06800071 
Extent 14 : L1 dba: 0x06800079 Data dba: 0x0680007a 
Extent 15 : L1 dba: 0x06800079 Data dba: 0x06800081 [/color] 
-------------------------------------------------------- 

Second Level Bitmap block DBAs 
-------------------------------------------------------- 
DBA 1: 0x0680000a 

End dump data blocks tsn: 6 file#: 7 minblk 11 maxblk 11 

从这里,我们能获得什么信息? 
这个是很重要的。 

分析块9,这个块叫FIRST LEVEL BITMAP BLOCK。我们可以看到,这里保留了16个块的信息(注意,不是16个区间的信息),也就是说,这个段头块,它记录的是块的使用信息,开始16个块中间有3个块是段头(Metadata,再一次证明也3个段头的保留),不能被使用,其它的都是未使用的块(unformatted)还有13个。 
问题?为什么这里只保留16个块的信息呢?这需要我们进一步研究(往下看) 

分析块10,叫SECOND LEVEL BITMAP BLOCK。这个就比较有意思了,记录了可能出现的类似于块9的块出现的块地址(叫 BMB DBA)。刚才在上面不是说了吗,块9只能记录16个块的信息,那16个块之后的信息怎么办?BMB段采用了分布的策略,在第25个块的地方,oracle将增加一个新的块用来记录下16个块(等会儿看测试),那么块10记录的就是这些块的地址了,如: 
0x06800019 Free: 5 Inst: 1 代表下一个块的地址是19(十六进制),其实是就是十进制的25。那么我们想象,再下一个是25+16=41。应当是十六进制的29,再查看块10的内容,大家可以知道这个块的作用了吧,这个块的地址是随表的增加而增加的。 

再看块11,这里就是区间地图了,这里主要记录了表的16个区间的分布地址。可以看到其实在ASSM的表里面,取消了原来的freelist(全部放在段头),其实增加了很多块来管理块的数据,这些块不再分布在块的头部,而是分布在表的内部,每隔16个块(这个数目与不同的环境可能有差别),就有一个块来记录下16个块的数据保留的情况。

好,到这里了,我们开始插入数据,进一步说明情况。 
SQL>insert into demotab 
select rownum from dba_objects; 
28985 rows inserted; 

然后我们运行 
SQL> exec show_space('demotab'); 
Total Blocks............................128 
Total Bytes.............................1048576 
Unused Blocks...........................72 
Unused Bytes............................589824 
Last Used Ext FileId....................26 
Last Used Ext BlockId...................56 
Last Used Block.........................8 

这里有一个新的过程,用于专门分析自动段管理的段中的块的组成 
declare 
v_unformatted_blocks number; 
v_unformatted_bytes number; 
v_fs1_blocks number; 
v_fs1_bytes number; 
v_fs2_blocks number; 
v_fs2_bytes number; 
v_fs3_blocks number; 
v_fs3_bytes number; 
v_fs4_blocks number; 
v_fs4_bytes number; 
v_full_blocks number; 
v_full_bytes number; 
begin 
dbms_space.space_usage ('SYS', 'DEMOTAB', 'TABLE', v_unformatted_blocks, 
v_unformatted_bytes, v_fs1_blocks, v_fs1_bytes, v_fs2_blocks, v_fs2_bytes, 
v_fs3_blocks, v_fs3_bytes, v_fs4_blocks, v_fs4_bytes, v_full_blocks, v_full_bytes); 
dbms_output.put_line('Unformatted Blocks = '||v_unformatted_blocks); 
dbms_output.put_line('FS1 Blocks = '||v_fs1_blocks); 
dbms_output.put_line('FS2 Blocks = '||v_fs2_blocks); 
dbms_output.put_line('FS3 Blocks = '||v_fs3_blocks); 
dbms_output.put_line('FS4 Blocks = '||v_fs4_blocks); 
dbms_output.put_line('Full Blocks = '||v_full_blocks); 
end;/

Unformatted Blocks = 0 
FS1 Blocks = 1 
FS2 Blocks = 0 
FS3 Blocks = 0 
FS4 Blocks = 6 
Full Blocks = 43 
PL/SQL procedure successfully completed 

在这里 
FS1表示0-25%空闲空间的块 
FS2表示25-50%空闲空间的块 
FS3表示50-75%空闲空间的块 
FS4表示 75-100%空闲空间的块 

这里我们能看到什么呢? 可以看到的是, 
Total Blocks............................128 
Unused Blocks...........................72 

就是说,我们这次插入用了128-72=56个块。 
但是看下面的数据,也就是数据块只有1+6+43=50个,还有6个的差别在哪里呢?我们已知的就是段头有3个,那还有3个应当就是分布在表中的位图块了(假定)。我们进一步分析。 
IXDBA.NET社区论坛
用了56个块,其实就是7个区间,7个区间,每个位图块只能管理16个块(2个区间),这里应当用到了4个位图块才能够管理过来,4个中有一个属于段头的3个,那正好是50+3+3=56=128-72了。我们进一步分析。 

再看那段头变成什么样了? 
Start dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9 
buffer tsn: 6 rdba: 0x06800009 (7/9) 
scn: 0x0000.0018b7ca seq: 0x2d flg: 0x00 tail: 0xb7ca202d 
frmt: 0x02 chkval: 0x0000 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 0 
[color=red]unformatted: 0 total: 16 first useful block: 3 [/color] 
owning instance : 1 
instance ownership changed at 08/19/2003 10:41:42 
Last successful Search 08/19/2003 10:41:42 
Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

Extent Map Block Offset: 4294967295 
First free datablock : 16 
Bitmap block lock opcode 0 
Locker xid: : 0x0000.000.00000000 
Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
HWM Flag: Not Set 
-------------------------------------------------------- 
DBA Ranges : 
-------------------------------------------------------- 
0x06800009 Length: 8 Offset: 0 
0x06800011 Length: 8 Offset: 8 

[color=red]0:Metadata 1:Metadata 2:Metadata 3:FULL 
4:FULL 5:FULL 6:FULL 7:FULL 
8:FULL 9:FULL 10:FULL 11:FULL 
12:FULL 13:FULL 14:FULL 15:FULL [/color] 
-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 9 maxblk 9 

*** 2003-08-19 11:10:10.000 
Start dump data blocks tsn: 6 file#: 7 minblk 10 maxblk 10 
buffer tsn: 6 rdba: 0x0680000a (7/10) 
scn: 0x0000.0018b7cb seq: 0x07 flg: 0x00 tail: 0xb7cb2107 
frmt: 0x02 chkval: 0x0000 type: 0x21=SECOND LEVEL BITMAP BLOCK 
Dump of Second Level Bitmap Block 
number: 8 nfree: 5 ffree: 3 pdba: 0x0680000b 
opcode:0 
xid: 
L1 Ranges : 
-------------------------------------------------------- 
[color=red]0x06800009 Free: 1 Inst: 1 
0x06800019 Free: 1 Inst: 1 
0x06800029 Free: 1 Inst: 1 [/color] 
0x06800039 Free: 5 Inst: 1 
0x06800049 Free: 5 Inst: 1 
0x06800059 Free: 5 Inst: 1 
0x06800069 Free: 5 Inst: 1 
0x06800079 Free: 5 Inst: 1 

-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 10 maxblk 10 

Start dump data blocks tsn: 6 file#: 7 minblk 11 maxblk 11 
buffer tsn: 6 rdba: 0x0680000b (7/11) 
scn: 0x0000.0018b7cb seq: 0x03 flg: 0x00 tail: 0xb7cb2303 
frmt: 0x02 chkval: 0x0000 type: 0x23=PAGETABLE SEGMENT HEADER 
Extent Control Header 
----------------------------------------------------------------- 
Extent Header:: spare1: 0 spare2: 0 #extents: 16 #blocks: 128 
last map 0x00000000 #maps: 0 offset: 2716 
[color=red]Highwater:: 0x06800041 [/color] ext#: 6 blk#: 8 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 50 
mapblk 0x00000000 offset: 6 
Unlocked 
-------------------------------------------------------- 
Low HighWater Mark : 
[color=red]Highwater:: 0x0680000c [/color] ext#: 0 blk#: 3 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
Level 1 BMB for High HWM block: 0x06800039 
Level 1 BMB for Low HWM block: 0x06800009 
-------------------------------------------------------- 
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0 
L2 Array start offset: 0x00001434 
First Level 3 BMB: 0x00000000 
L2 Hint for inserts: 0x0680000a 
Last Level 1 BMB: 0x06800079 
Last Level II BMB: 0x0680000a 
Last Level III BMB: 0x00000000 
Map Header:: next 0x00000000 #extents: 16 obj#: 29929 flag: 0x20000000 
Extent Map 
----------------------------------------------------------------- 
0x06800009 length: 8 
0x06800011 length: 8 
0x06800019 length: 8 
0x06800021 length: 8 
0x06800029 length: 8 
0x06800031 length: 8 
0x06800039 length: 8 
0x06800041 length: 8 
0x06800049 length: 8 
0x06800051 length: 8 
0x06800059 length: 8 
0x06800061 length: 8 
0x06800069 length: 8 
0x06800071 length: 8 
0x06800079 length: 8 
0x06800081 length: 8 

Auxillary Map 
-------------------------------------------------------- 
Extent 0 : L1 dba: 0x06800009 Data dba: 0x0680000c 
Extent 1 : L1 dba: 0x06800009 Data dba: 0x06800011 
Extent 2 : L1 dba: 0x06800019 Data dba: 0x0680001a 
Extent 3 : L1 dba: 0x06800019 Data dba: 0x06800021 
Extent 4 : L1 dba: 0x06800029 Data dba: 0x0680002a 
Extent 5 : L1 dba: 0x06800029 Data dba: 0x06800031 
Extent 6 : L1 dba: 0x06800039 Data dba: 0x0680003a 
Extent 7 : L1 dba: 0x06800039 Data dba: 0x06800041 
Extent 8 : L1 dba: 0x06800049 Data dba: 0x0680004a 
Extent 9 : L1 dba: 0x06800049 Data dba: 0x06800051 
Extent 10 : L1 dba: 0x06800059 Data dba: 0x0680005a 
Extent 11 : L1 dba: 0x06800059 Data dba: 0x06800061 
Extent 12 : L1 dba: 0x06800069 Data dba: 0x0680006a 
Extent 13 : L1 dba: 0x06800069 Data dba: 0x06800071 
Extent 14 : L1 dba: 0x06800079 Data dba: 0x0680007a 
Extent 15 : L1 dba: 0x06800079 Data dba: 0x06800081 
-------------------------------------------------------- 

Second Level Bitmap block DBAs 
-------------------------------------------------------- 
DBA 1: 0x0680000a 

End dump data blocks tsn: 6 file#: 7 minblk 11 maxblk 11 

看块9,可以看到,段头的三个块没有动。另外的13个块都是FULL(100%充满)状态。 
看块10,可以看到,充分利用的位图块的位置是: 
0x06800009 Free: 1 Inst: 1 --对应9 
0x06800019 Free: 1 Inst: 1 --对应25 
0x06800029 Free: 1 Inst: 1 --对应41 
应当还有一个不完全利用的 
0x06800039 Free: 5 Inst: 1 --对应57 
下面我们证实一下 

块25的信息: 
Start dump data blocks tsn: 6 file#: 7 minblk 25 maxblk 25 
buffer tsn: 6 rdba: 0x06800019 (7/25) 
scn: 0x0000.0018b7cb seq: 0x0e flg: 0x04 tail: 0xb7cb200e 
frmt: 0x02 chkval: 0x261c type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 1 
unformatted: 0 total: 16 first useful block: 1 
owning instance : 1 
instance ownership changed at 08/19/2003 10:41:42 
Last successful Search 08/19/2003 10:41:42 
Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

Extent Map Block Offset: 4294967295 
First free datablock : 16 
Bitmap block lock opcode 0 
Locker xid: : 0x0000.000.00000000 
Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
HWM Flag: Not Set 
-------------------------------------------------------- 
DBA Ranges : 
-------------------------------------------------------- 
0x06800019 Length: 8 Offset: 0 
0x06800021 Length: 8 Offset: 8 

[color=red]0:Metadata 1:FULL 2:FULL 3:FULL 
4:FULL 5:FULL 6:FULL 7:FULL 
8:FULL 9:FULL 10:FULL 11:FULL 
12:FULL 13:FULL 14:FULL 15:FULL [/color] 
-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 25 maxblk 25 

块41的信息 
Start dump data blocks tsn: 6 file#: 7 minblk 41 maxblk 41 
buffer tsn: 6 rdba: 0x06800029 (7/41) 
scn: 0x0000.0018b7cb seq: 0x35 flg: 0x04 tail: 0xb7cb2035 
frmt: 0x02 chkval: 0x260f type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 2 
unformatted: 0 total: 16 first useful block: 1 
owning instance : 1 
instance ownership changed at 08/19/2003 10:41:42 
Last successful Search 08/19/2003 10:41:42 
Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

Extent Map Block Offset: 4294967295 
First free datablock : 16 
Bitmap block lock opcode 0 
Locker xid: : 0x0000.000.00000000 
Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
#blocks in seg. hdr's freelists: 0 
#blocks below: 0 
mapblk 0x00000000 offset: 0 
HWM Flag: Not Set 
-------------------------------------------------------- 
DBA Ranges : 
-------------------------------------------------------- 
0x06800029 Length: 8 Offset: 0 
0x06800031 Length: 8 Offset: 8 

[color=red]0:Metadata 1:FULL 2:FULL 3:FULL 
4:FULL 5:FULL 6:FULL 7:FULL 
8:FULL 9:FULL 10:FULL 11:FULL 
12:FULL 13:FULL 14:FULL 15:FULL [/color] 
-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 41 maxblk 41 

块57的信息 

Start dump data blocks tsn: 6 file#: 7 minblk 57 maxblk 57 
buffer tsn: 6 rdba: 0x06800039 (7/57) 
scn: 0x0000.0018b7cb seq: 0x04 flg: 0x04 tail: 0xb7cb2004 
frmt: 0x02 chkval: 0x27d2 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
nbits : 4 nranges: 2 parent dba: 0x0680000a poffset: 3 
unformatted: 8 total: 16 first useful block: 1 
owning instance : 1 
instance ownership changed at 08/19/2003 10:41:42 
Last successful Search 08/19/2003 10:41:42 
Freeness Status: nf1 1 nf2 0 nf3 0 nf4 6 

Extent Map Block Offset: 4294967295 
First free datablock : 1 
Bitmap block lock opcode 0 
Locker xid: : 0x0000.000.00000000 
Highwater:: 0x06800041 ext#: 6 blk#: 8 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 50 
mapblk 0x00000000 offset: 6 
HWM Flag: HWM Set 
-------------------------------------------------------- 
DBA Ranges : 
-------------------------------------------------------- 
0x06800039 Length: 8 Offset: 0 
0x06800041 Length: 8 Offset: 8 

[color=red]0:Metadata 1:75-100% free 2:75-100% free 3:75-100% free 
4:75-100% free 5:75-100% free 6:75-100% free 7:0-25% free 
8:unformatted 9:unformatted 10:unformatted 11:unformatted 
12:unformatted 13:unformatted 14:unformatted 15:unformatted [/color] 
-------------------------------------------------------- 
End dump data blocks tsn: 6 file#: 7 minblk 57 maxblk 57 

块9:2个段头+1个位图+13个FULL 
块25:1个位图+15个FULL 
块41:1个位图+15个FULL 
块57:1个位图+6个75-100% free+1个0-25% free 

大家可以看到正好满足上面的: 
FS1 Blocks = 1 
FS2 Blocks = 0 
FS3 Blocks = 0 
FS4 Blocks = 6 
Full Blocks = 43 

到这里,大家也明白了 
3*16+8=56=1+6+43+3(段头,其中有一个是BMB)+3(BMB)

最后,我们讨论高水点的确定。 
到这里,大家该知道高水点的位置是多少了吧,应该是56+8(文件头)+1=65(这个1表示在数据块之上,因为块从1开始而不是从0开始)。但是看我们的块11,怎么解释这个呢? 
Highwater:: 0x06800041 ext#: 6 blk#: 8 ext size: 8 
#blocks in seg. hdr's freelists: 0 
#blocks below: 50 
mapblk 0x00000000 offset: 6 
Unlocked 
-------------------------------------------------------- 
Low HighWater Mark : 
[color=red]Highwater:: 0x0680000c [/color] ext#: 0 blk#: 3 ext size: 8 

其中有两个Highwater,第一个记录了真正的高水点,H41,就是十进制65 
第二个表示底的高水点,从哪里开始,很明显,从12(十六进制的c) 
个块开始(前面是8个文件头+3个段头) 
其实,我们从最后一个位图块(57)的dump中也可以看到这样的信息 
Locker xid: : 0x0000.000.00000000 
[color=red]Highwater:: 0x06800041 [/color] ext#: 6 blk#: 8 ext size: 8

 

少有的好文章呀

 


两个问题 Copy to clipboard
Posted by: overmars
Posted on: 2003-08-26 16:27

1、有点不懂你的“大家该知道高水点的位置是多少了吧,应该是56+8(文件头)+1=65”中的“1”是怎么得来的呢?其实通过dba_extents可以知道,表是从第9个块开始写数据的。HWM=56+9=65 

2、你说的这个情况只是适用于0-15个extents(每个extents大小是64K,8个8K的数据块),从第16个extents开始没有extents的大小是128个8K的数据块,这时它的管理是每128个块中包含2个块来做空间管理。

回复: ASSM内部存储研究大揭密 Copy to clipboard
Posted by: overmars
Posted on: 2003-08-26 16:37

FS1 Blocks = 1 
FS2 Blocks = 0 
FS3 Blocks = 0 
FS4 Blocks = 17 
Full Blocks = 352 

PL/SQL 过程已成功完成。 
在这里 
FS1表示0-25%空闲空间的块 
FS2表示25-50%空闲空间的块 
FS3表示50-75%空闲空间的块 
IXDBA.NET技术社区
FS4表示 75-100%空闲空间的块 
SQL> exec show_space('ASSM','AUTO'); 
Total Blocks............................384 
Total Bytes.............................3145728 
Unused Blocks...........................0 
Unused Bytes............................0 
Last Used Ext FileId....................5 
Last Used Ext BlockId...................264 
Last Used Block.........................128 

PL/SQL 过程已成功完成。 

SQL> select extent_id,block_id,blocks from dba_extents where segment_name='ASSM' 

EXTENT_ID BLOCK_ID BLOCKS 
---------- ---------- ---------- 
         0 9 8 
         1 17 8 
         2 25 8 
         3 33 8 
         4 41 8 
         5 49 8 
         6 57 8 
         7 65 8 
         8 73 8 
         9 81 8 
        10 89 8 

EXTENT_ID BLOCK_ID BLOCKS 
---------- ---------- ---------- 
        11 97 8 
        12 105 8 
        13 113 8 
        14 121 8 
        15 129 8 
        16 137 128 
        17 265 128 

已选择18行。 

*** SESSION ID:(7.3) 2003-08-26 15:22:23.428 
Start dump data blocks tsn: 8 file#: 5 minblk 137 maxblk 137 
buffer tsn: 8 rdba: 0x01400089 (5/137) 
scn: 0x0000.0016c1d5 seq: 0x0d flg: 0x04 tail: 0xc1d5200d 
frmt: 0x02 chkval: 0x2732 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
   nbits : 4 nranges: 1 parent dba: 0x0140000a poffset: 8 
   unformatted: 0 total: 64 first useful block: 2 
   owning instance : 1 
   instance ownership changed at 08/26/2003 10:27:09 
   Last successful Search 08/26/2003 10:27:09 
   Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

   Extent Map Block Offset: 4294967295 
   First free datablock : 64 
   Bitmap block lock opcode 0 
   Locker xid: : 0x0000.000.00000000 
      Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
  #blocks in seg. hdr's freelists: 0 
  #blocks below: 0 
  mapblk 0x00000000 offset: 0 
  HWM Flag: Not Set 
  -------------------------------------------------------- 
  DBA Ranges : 
  -------------------------------------------------------- 
   0x01400089 Length: 64 Offset: 0 
   
   0:Metadata 1:Metadata 2:FULL 3:FULL 
   4:FULL 5:FULL 6:FULL 7:FULL 
   8:FULL 9:FULL 10:FULL 11:FULL 
   12:FULL 13:FULL 14:FULL 15:FULL 
   16:FULL 17:FULL 18:FULL 19:FULL 
   20:FULL 21:FULL 22:FULL 23:FULL 
   24:FULL 25:FULL 26:FULL 27:FULL 
   28:FULL 29:FULL 30:FULL 31:FULL 
   32:FULL 33:FULL 34:FULL 35:FULL 
   36:FULL 37:FULL 38:FULL 39:FULL 
   40:FULL 41:FULL 42:FULL 43:FULL 
   44:FULL 45:FULL 46:FULL 47:FULL 
   48:FULL 49:FULL 50:FULL 51:FULL 
   52:FULL 53:FULL 54:FULL 55:FULL 
   56:FULL 57:FULL 58:FULL 59:FULL 
   60:FULL 61:FULL 62:FULL 63:FULL 
  -------------------------------------------------------- 
End dump data blocks tsn: 8 file#: 5 minblk 137 maxblk 137 

*** 2003-08-26 15:28:34.351 
Start dump data blocks tsn: 8 file#: 5 minblk 138 maxblk 138 
buffer tsn: 8 rdba: 0x0140008a (5/138) 
scn: 0x0000.0016c1db seq: 0x02 flg: 0x04 tail: 0xc1db2002 
frmt: 0x02 chkval: 0x2772 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
   nbits : 4 nranges: 1 parent dba: 0x0140000a poffset: 9 
   unformatted: 0 total: 64 first useful block: 0 
   owning instance : 1 
   instance ownership changed at 08/26/2003 10:27:12 
   Last successful Search 08/26/2003 10:27:12 
   Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

   Extent Map Block Offset: 4294967295 
   First free datablock : 64 
   Bitmap block lock opcode 0 
   Locker xid: : 0x0000.000.00000000 
      Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
  #blocks in seg. hdr's freelists: 0 
  #blocks below: 0 
  mapblk 0x00000000 offset: 0 
  HWM Flag: Not Set 
  -------------------------------------------------------- 
  DBA Ranges : 
  -------------------------------------------------------- 
   0x014000c9 Length: 64 Offset: 0 
   
   0:FULL 1:FULL 2:FULL 3:FULL 
   4:FULL 5:FULL 6:FULL 7:FULL 
   8:FULL 9:FULL 10:FULL 11:FULL 
   12:FULL 13:FULL 14:FULL 15:FULL 
   16:FULL 17:FULL 18:FULL 19:FULL 
   20:FULL 21:FULL 22:FULL 23:FULL 
   24:FULL 25:FULL 26:FULL 27:FULL 
   28:FULL 29:FULL 30:FULL 31:FULL 
   32:FULL 33:FULL 34:FULL 35:FULL 
   36:FULL 37:FULL 38:FULL 39:FULL 
   40:FULL 41:FULL 42:FULL 43:FULL 
   44:FULL 45:FULL 46:FULL 47:FULL 
   48:FULL 49:FULL 50:FULL 51:FULL 
   52:FULL 53:FULL 54:FULL 55:FULL 
   56:FULL 57:FULL 58:FULL 59:FULL 
   60:FULL 61:FULL 62:FULL 63:FULL 
  -------------------------------------------------------- 
End dump data blocks tsn: 8 file#: 5 minblk 138 maxblk 138 

*** 2003-08-26 10:40:27.307 
Start dump data blocks tsn: 8 file#: 5 minblk 265 maxblk 265 
buffer tsn: 8 rdba: 0x01400109 (5/265) 
scn: 0x0000.0016c1df seq: 0x1c flg: 0x00 tail: 0xc1df201c 
frmt: 0x02 chkval: 0x0000 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
   nbits : 4 nranges: 1 parent dba: 0x0140000a poffset: 10 
   unformatted: 0 total: 64 first useful block: 2 
   owning instance : 1 
   instance ownership changed at 08/26/2003 10:27:13 
   Last successful Search 08/26/2003 10:27:13 
   Freeness Status: nf1 0 nf2 0 nf3 0 nf4 0 

   Extent Map Block Offset: 4294967295 
   First free datablock : 64 
   Bitmap block lock opcode 0 
   Locker xid: : 0x0000.000.00000000 
      Highwater:: 0x00000000 ext#: 0 blk#: 0 ext size: 0 
  #blocks in seg. hdr's freelists: 0 
  #blocks below: 0 
  mapblk 0x00000000 offset: 0 
  HWM Flag: Not Set 
  -------------------------------------------------------- 
  DBA Ranges : 
  -------------------------------------------------------- 
   0x01400109 Length: 64 Offset: 0 
   
   0:Metadata 1:Metadata 2:FULL 3:FULL--- 
   4:FULL 5:FULL 6:FULL 7:FULL 
   8:FULL 9:FULL 10:FULL 11:FULL 
   12:FULL 13:FULL 14:FULL 15:FULL 
   16:FULL 17:FULL 18:FULL 19:FULL 
   20:FULL 21:FULL 22:FULL 23:FULL 
   24:FULL 25:FULL 26:FULL 27:FULL 
   28:FULL 29:FULL 30:FULL 31:FULL 
   32:FULL 33:FULL 34:FULL 35:FULL 
   36:FULL 37:FULL 38:FULL 39:FULL 
   40:FULL 41:FULL 42:FULL 43:FULL 
   44:FULL 45:FULL 46:FULL 47:FULL 
   48:FULL 49:FULL 50:FULL 51:FULL 
   52:FULL 53:FULL 54:FULL 55:FULL 
   56:FULL 57:FULL 58:FULL 59:FULL 
   60:FULL 61:FULL 62:FULL 63:FULL 
  -------------------------------------------------------- 
End dump data blocks tsn: 8 file#: 5 minblk 265 maxblk 265 
*** 2003-08-26 10:41:05.642 
Start dump data blocks tsn: 8 file#: 5 minblk 266 maxblk 266 
buffer tsn: 8 rdba: 0x0140010a (5/266) 
scn: 0x0000.0016c1e3 seq: 0x06 flg: 0x00 tail: 0xc1e32006 
frmt: 0x02 chkval: 0x0000 type: 0x20=FIRST LEVEL BITMAP BLOCK 
Dump of First Level Bitmap Block 
-------------------------------- 
   nbits : 4 nranges: 1 parent dba: 0x0140000a poffset: 11 
   unformatted: 0 total: 64 first useful block: 0 
   owning instance : 1 
   instance ownership changed at 08/26/2003 10:27:14 
   Last successful Search 08/26/2003 10:27:14 
   Freeness Status: nf1 1 nf2 0 nf3 0 nf4 17 

   Extent Map Block Offset: 4294967295 
   First free datablock : 0 
   Bitmap block lock opcode 0 
   Locker xid: : 0x0000.000.00000000 
      Highwater:: 0x01400189 ext#: 17 blk#: 128 ext size: 128 
  #blocks in seg. hdr's freelists: 0 
  #blocks below: 370 
  mapblk 0x00000000 offset: 17 
  HWM Flag: HWM Set 
  -------------------------------------------------------- 
  DBA Ranges : 
  -------------------------------------------------------- 
   0x01400149 Length: 64 Offset: 0 
   
   0:75-100% free 1:FULL 2:FULL 3:0-25% free 
   4:75-100% free 5:FULL 6:FULL 7:75-100% free 
   8:FULL 9:FULL 10:FULL 11:75-100% free 
   12:FULL 13:FULL 14:FULL 15:75-100% free 
   16:FULL 17:FULL 18:FULL 19:75-100% free 
   20:FULL 21:FULL 22:FULL 23:75-100% free 
   24:FULL 25:FULL 26:FULL 27:75-100% free 
   28:FULL 29:FULL 30:FULL 31:75-100% free 
   32:FULL 33:FULL 34:FULL 35:75-100% free 
   36:FULL 37:FULL 38:FULL 39:75-100% free 
   40:FULL 41:FULL 42:FULL 43:75-100% free 
   44:FULL 45:FULL 46:FULL 47:75-100% free 
   48:FULL 49:FULL 50:FULL 51:75-100% free 
   52:FULL 53:FULL 54:FULL 55:75-100% free 
   56:FULL 57:FULL 58:FULL 59:75-100% free 
   60:FULL 61:FULL 62:FULL 63:75-100% free 
  -------------------------------------------------------- 
End dump data blocks tsn: 8 file#: 5 minblk 266 maxblk 266 

可以看到从第16号extents开始每128个块中有2个块来管理位图的信息,节省了很多的空间。
overmars wrote: 
1、有点不懂你的“大家该知道高水点的位置是多少了吧,应该是56+8(文件头)+1=65”中的“1”是怎么得来的呢?其实通过dba_extents可以知道,表是从第9个块开始写数据的。HWM=56+9=65 




因为HWM的是在数据上面的一个块,当然加1了。 
如一个数据都没有的时候, 
DMT的HWM是1+1+1=3 
LMT一般是8+1+1=10 
ASSM一般是8+3+1=12

 

回复: ASSM内部存储研究大揭密 Copy to clipboard

Posted by: piner
Posted on: 2003-08-26 17:21

的确是这样,但不完全是这样 
从dump出来的块10记录的位图位置也可以看到这一变化 
可以看到下面的变化,18->20->28->30 
-------------------------------------------------------------------------------------------------- 
[$nbsp][$nbsp][$nbsp]0x06800009 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800019 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800029 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800039 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800049 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800059 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800069 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800079 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800109 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x0680010a Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800189 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x0680018a Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800209 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x0680020a Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800289 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x0680028a Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x06800309 Free: 1 Inst: 1 
[$nbsp][$nbsp][$nbsp]0x0680030a Free: 5 Inst: 1 

这里我们对比以上的块10的内容,还可以看到,条目是不断增加的,也就是说,每增加一个BMB,就在该块中增加一个条目

 

参考至:http://blog.csdn.net/cymm_liu/article/details/6877531

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    基于SSM框架交通档案管理系统.zip

    基于SSM框架的交通档案管理系统是为交通管理部门、公共交通企业和相关运输企业设计的文档和记录管理平台。利用Spring、Spring MVC和MyBatis(即SSM)这三个主流的Java开发框架,该系统提供了车辆登记、驾驶员资质...

    ssm框架酒吧系统完整导入可运行带sql

    进去之后会触发一个页面刷新的方法,之后在里面填写寄存产品的信息 其中,会员信息和产品信息都是从数据库中查询出来的,可以进行自动赋值,还有寄存单号是自动生成的随机数,之后金额的value也是在后台自动计算出来...

    基于SSM实现的支教志愿者招聘管理系统+sql数据库(毕设源码).zip

    5、实现志愿者登录后的个人空间管理功能:个人空间管理界面的功能清单,比如修改资料,参与职位,我的评价,我的支教服务时长 6、实现前端首页的内容展示(未登录以游客身份浏览首页,首页以同类的志愿者网站作为...

    Maven基于SSM实现的支教志愿者招聘管理系统源代码+文档说明+数据库

    比如修改资料,发布职位,已发布职位,联系管理员 4、 联系管理员模块,联系后台的管理员,类似于留言功能 5、实现志愿者登录后的个人空间管理功能:个人空间管理界面的功能清单,比如修改资料,参与职位,我的评价...

    ssm项目基于微信小程序的仓储管理系统_r275i.zip

    SSM项目基于微信小程序的仓储管理系统_r275i.zip是一个使用Java语言开发的Web应用,它采用了SSM(Spring Spring MVC MyBatis)框架,并结合了微信小程序前端技术。该系统旨在为企业提供一个便捷的仓库管理解决方案,...

    基于SSM的手机商城销售系统的参考论文

    实现对手机销售网站信息进行管理,实现管理自动化,系统化,规范化。本系统开发过程主要采用基于SSM框架技术,使用JSP页面技术,后台数据库采用MySQL开发而成,保证查询,添加,删除,修改等功能。用户:收藏管理、...

    最新ssm项目明嘉新材料公司仓库管理的设计和实现+jsp.zip

    最新SSM项目明嘉新材料公司仓库管理的设计和实现JSP.zip是一个面向材料生产与分销行业的仓库管理系统。该项目以Spring Spring MVC MyBatis作为后端技术架构,并使用JSP作为前端展示层,旨在为明嘉新材料公司提供一个...

    最新小程序基于微信的乐室预约小程序+ssm.zip

    该项目通过整合移动端的便捷性与SSM框架的技术优势,致力于打造一个高效、方便的音乐练习空间预订系统。 以下是该微信小程序乐室预约系统的核心功能和特点: 1. **在线预约乐室**:用户可以轻松浏览不同乐室的信息...

    基于SSM框架仓库智能仓储系统.zip

    通过这个系统,企业能够实现高度自动化和智能化的仓库管理,降低人力成本,减少库存误差,同时提高仓库空间利用率和货物流转效率。系统的实时监控和智能调度功能有助于及时响应市场变化,优化库存水平,防止过剩或...

    java毕设项目源码基于ssm的小型企业办公自动化系统的设计和开发+vue(源码 + 数据库 + 说明文档).rar

    总之,小型企业办公自动化系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。 关键词:小型企业办公自动化系统;Java语言;Mysql

    基于SSM框架疫情居家办公OA系统.zip

    基于SSM框架的疫情居家办公OA系统(Office Automation System)是一款为适应疫情期间远程工作需求而设计的自动化办公软件。该系统采用Spring、Spring MVC和MyBatis(即SSM)作为后端开发框架,前端可能结合HTML5、...

    基于SSM+mysql的四六级在线考试系统设计与实现(源码+设计文档+部署说明+视频演示).zip

    成绩评估:系统能够自动评估学生的考试成绩,根据答题情况进行自动评分和判定,提供成绩报告和评估反馈,帮助学生了解自己的考试水平和提升空间。 学习资源:系统提供学习资料和参考资源,包括英语学习指南、词汇表...

    基于微信小程序的云上考场的实现+ssm框架.rar

    提供成绩分析和反馈功能,包括成绩排名、错题回顾、答题技巧建议等,帮助用户了解自己的学习水平和提升空间。 安全与稳定性: 系统采用安全可靠的数据加密技术,保障用户信息和考试数据的安全性。 系统具有良好的...

    基于SSM电器网上订购系统.zip

    购物板块:用户可以在主页面中通过查看电器的分类并获取某一类电器的相关信息,筛选商品并添加购物车,在购物板块可以增加商品种类以及商品数量,实现全部商品价格自动计算。 在美日信息化程度较高的管家和地区,...

    [计算机毕业设计]-微信小程序基于ssm的的英语学习激励系统--论文-附完整程序源代码.rar

    1. 学习任务管理:用户可设定每日学习任务,系统自动跟踪完成情况,提供任务提醒和统计功能。 2. 积分激励系统:用户完成学习任务、参与互动活动等方式获得积分,可用于兑换奖品或解锁高级学习资源。 3. 个性化...

    毕业设计:ASP.NET+SQL办公自动化管理系统的设计与实现(源代码+论文)

    这些优点能够极大地提高企业信息管理的效率,大大降低企业在信息管理上的投入,使企业获得更大的利润空间。因此,开发一个能够管理企业各种信息的办公自动化管理系统是一件十分必要的事情。随着计算机的大量普及,各种...

    maven的优缺点 项目

    ssm_service_back:管理员后台的web服务 ssm_service_head:前台的服务 凡是依赖:如果都是java项目,会将依赖的项目打成一个jar包放到classpath中, 如果是web项目,会将依赖的项目打成一个jar包,放到web-inf/lib中 ...

    微信小程序项目源码-微信课堂助手小程序+php+论文.rar

    1. 课程管理:教师可轻松发布课程信息,包括课程名称、简介、封面等,并实时更新课程进度。 2. 作业批改:学生提交作业后,教师可在线进行批改,给出评分与反馈,提高教学效率。 3. 实时互动:支持师生在线实时问答...

    毕业设计_淘宝天猫优惠券.zip

    淘宝天猫购物优惠券安卓原生app+后台(ssm)+接口文档+ppt+部分论文。 本系统为本人毕业设计,重心在于APP所以后台功能相对简单。 演示图片请前往:https://blog.csdn.net/qq_41780372/article/details/97147655 ...

    SpringBoot项目智能学习平台系统.zip

    2. **智能作业评估**:利用自然语言处理技术自动批改学生的作业,提供即时反馈。 3. **互动式课堂**:集成视频会议和实时聊天工具,支持远程教学和学生之间的互动。 4. **课程管理和跟踪**:允许教师轻松发布课程...

Global site tag (gtag.js) - Google Analytics