热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ORACLE空间管理实验5:块管理之ASSM下高水位的影响

数据库|mysql教程ORACLE,空间,管理,实验,ASSM,下高,水位,影响,数据库-mysql教程易语言黑客软件源码,vscode左侧搜索,ubuntu怎么看上一页,ecs搭

数据库|mysql教程ORACLE空间管理实验5:块管理之ASSM下高水位的影响
ORACLE,空间,管理,实验,ASSM,下高,水位,影响,
数据库-mysql教程
易语言黑客软件源码,vscode左侧搜索,ubuntu怎么看上一页,ecs搭建tomcat,sqlite日期函数大全,酷炫插件,前端组件化框架有哪些,爬虫作业什么意思,百科 php,重庆seo字,大气企业网站模板,好看的个人简介网页模板,asp 模板 标签lzw
高水位概念: 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为high water mark或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。HWM原则
奶粉源码是什么意思,vscode 新手上路,ubuntu安装依赖,tomcat 管理页面,sqlite表格,网站网站建设网页设计,香港虚机建立数据库,哈尔滨那家网络服务器,移动端下拉刷新 上拉加载更多插件,南北方城市前端框架使用,Ctf爬虫,php内置函数,天津seo外包,springboot基础协议,怎么修改网页标签名称,淘宝客网站源码加各类插件,网页左侧菜单栏交互,百度流模板,html网站怎么进入后台,左侧导航条随页面滚动,数据库 学生公寓管理系统代码 课程设计,wvd matlab程序lzw
考试平台源码,ubuntu删除自己系统,tomcat7项目,pagination防爬虫,html5安装php,seo找词法lzw
高水位概念:
所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称为”high water mark”或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。HWM原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值,由于这个特点,使HWM很象一个水库的历史最高水位,这也就是HWM的原始含义。
这个概念百度下一大把,可以参考:
http://www.blogjava.net/decode360/archive/2009/07/14/287767.html
http://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html

高水位与低高水位:低高水位与高水位之间存在的数据块的状态可能是未格式化或格式的。低高水位以下的是格式化了的,可以被使用。
HWM对数据库的操作有如下影响:
1.全表扫描通常要读出直到HWM标记的所有的属于该表数据库块,即使该表中没有任何数据。
3.即使HWM以下有空闲的数据库块,键入在插入数据时使用了append关键字,则在插入时使用HWM以上的数据块,此时HWM会自动增大。
2.插入时,默认只能插入到高水位以下的数据块,这在高并发时可能引起热块从而导致性能问题。
下面就通过实验来验证一下:

全表扫描通常要读出直到低高水位HWM标记的所有的属于该表数据库块,即使该表中没有任何数据–DELETE来测试。TRUNCATE会释放。

解决方法有:expdp/impdp,shrink:需要在ASSM且表开启行移动。MOVE不支持在线,或者CRTEATE TABLE A AS,再删除原表,将新表改为原名。。

#################################################

1. DELETE不会改变高水位,但是删除后对表做SHRINK操作可以回收空间,降低高水位

BYS@ bys3>create table test12 as select * from dba_objects;
Table created.
BYS@ bys3>insert into test12 select * from dba_objects;
17558 rows created.
BYS@ bys3>commit;
Commit complete.
BYS@ bys3>insert into test12 select * from test12;
35116 rows created.
BYS@ bys3>commit;
Commit complete.
BYS@ bys3>insert into test12 select * from test12;
70232 rows created.
BYS@ bys3>commit;
Commit complete.
BYS@ bys3>insert into test12 select * from test12;
140464 rows created.
BYS@ bys3>commit;
Commit complete.
BYS@ bys3>alter system checkpoint; —要做检查点
System altered.
BYS@ bys3>select header_block,header_file from dba_segments where segment_name=’TEST12′ and owner=’BYS’;
HEADER_BLOCK HEADER_FILE
———— ———–
922 4
BYS@ bys3>select sum(blocks) from dba_extents where segment_name=’TEST12′ and owner=’BYS’;
SUM(BLOCKS)
———–
3840
BYS@ bys3>select count(extent_id) from dba_extents where segment_name=’TEST12′ and owner=’BYS’;
COUNT(EXTENT_ID)
—————-
45
多执行几次,取后面的平均值:
BYS@ bys3>set autotrace traceonly stat
BYS@ bys3>select * from test12;
280960 rows selected.
Elapsed: 00:00:05.70
Statistics
———————————————————-
0 recursive calls
0 db block gets
23504 consistent gets
3710 physical reads

0 redo size
29190599 bytes sent via SQL*Net to client
206449 bytes received via SQL*Net from client
18732 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
280960 rows processed

BYS@ bys3>alter system dump datafile 4 block 922;
System altered.
BYS@ bys3>select value from v$diag_info where name like ‘De%’;
VALUE
—————————————————————————————————-
/u01/diag/rdbms/bys3/bys3/trace/bys3_ora_25994.trc
###############DUMP段头,查看高水位信息:Highwater:: 0x01001180 –4480号块
Extent Control Header
—————————————————————–
Extent Header:: spare1: 0 spare2: 0 #extents: 45 #blocks: 3840
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x01002100 ext#: 44 blk#: 128 ext size: 128 –高水位的DBA:0x01002100,8448号块
#blocks in seg. hdr’s freelists: 0
#blocks below: 3784
mapblk 0x00000000 offset: 44
Unlocked
——————————————————–
Low HighWater Mark :
Highwater:: 0x01002080 ext#: 43 blk#: 128 ext size: 128 –低高水位 0x01002080
#blocks in seg. hdr’s freelists: 0
#blocks below: 3712
mapblk 0x00000000 offset: 43
Level 1 BMB for High HWM block: 0x01002081
Level 1 BMB for Low HWM block: 0x01002001
——————————————————–
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x01000399
Last Level 1 BMB: 0x01002081
Last Level II BMB: 0x01000399
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 45 obj#: 23303 flag: 0x10000000
Inc # 0
Extent Map
—————————————————————–
0x01000398 length: 8
%……………………
0x01002080 length: 128 –最后一个L1 DBA是8320号块,管理了128个块,高水位是8448号块,刚好是最后一个L1的最后一个数据块。

Auxillary Map
——————————————————–
Extent 0 : L1 dba: 0x01000398 Data dba: 0x0100039b
……………………
Extent 44 : L1 dba: 0x01002080 Data dba: 0x01002082 高水位应该就是这个L1管理的最后一个块:0x01002082 -8322号块,

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

Second Level Bitmap block DBAs
——————————————————–
DBA 1: 0x01000399

对表做分析后

BYS@ bys3>analyze table test12 compute statistics;
Table analyzed.
BYS@ bys3>select pct_free,pct_used,blocks,avg_row_len,chain_cnt from tabs where table_name=’TEST12′;
PCT_FREE PCT_USED BLOCKS AVG_ROW_LEN CHAIN_CNT
———- ———- ———- ———– ———-
10 3784 93 0
BYS@ bys3>set autotrace traceonly stat
BYS@ bys3>select * from test12;
280960 rows selected.
Elapsed: 00:00:05.46
Statistics
———————————————————-
0 recursive calls
0 db block gets
22204 consistent gets
0 physical reads
0 redo size
29190599 bytes sent via SQL*Net to client
206449 bytes received via SQL*Net from client
18732 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
280960 rows processed
DUMP信息与未做表分析时相同,不贴了。

######################

DELETE删除表中全部数据

BYS@ bys3>delete test12;
280944 rows deleted.
BYS@ bys3>commit;
Commit complete.
BYS@ bys3>alter system checkpoint;
System altered.
BYS@ bys3>select header_block,header_file from dba_segments where segment_name=’TEST12′ and owner=’BYS’;
HEADER_BLOCK HEADER_FILE
———— ———–
922 4
BYS@ bys3>select sum(blocks) from dba_extents where segment_name=’TEST12′ and owner=’BYS’;
SUM(BLOCKS)
———–
3840
BYS@ bys3>select count(extent_id) from dba_extents where segment_name=’TEST12′ and owner=’BYS’;
COUNT(EXTENT_ID)
—————-

45

BYS@ bys3>analyze table test12 compute statistics;
Table analyzed.
BYS@ bys3>select pct_free,pct_used,blocks,avg_row_len,chain_cnt from tabs where table_name=’TEST12′;
PCT_FREE PCT_USED BLOCKS AVG_ROW_LEN CHAIN_CNT
———- ———- ———- ———– ———-
10 3784 0 0

BYS@ bys3>alter system dump datafile 4 block 922;
System altered.
BYS@ bys3>select value from v$diag_info where name like ‘De%’;
VALUE
—————————————————————————————————-
/u01/diag/rdbms/bys3/bys3/trace/bys3_ora_26054.trc
BYS@ bys3>set autotrace traceonly stat
BYS@ bys3>select * from test12;
no rows selected
Elapsed: 00:00:00.02
Statistics
———————————————————-
0 recursive calls
0 db block gets
3721 consistent gets
2 physical reads
0 redo size
1183 bytes sent via SQL*Net to client
408 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
###############DELETE删除后的DUMP信息和上一个未删除时的没啥区别,不贴了。

DELETE删除后对表做SHRINK:–可以回收空间,降低高水位

BYS@ bys3>alter table test12 enable row movement;
Table altered.
BYS@ bys3>alter table test12 shrink space; –SHRINK与MOVE,详见:shrink合并数据块–解决数据块碎片问题
Table altered.
BYS@ bys3>alter system checkpoint;
System altered.
BYS@ bys3>select pct_free,pct_used,blocks,avg_row_len,chain_cnt from tabs where table_name=’TEST12′;
PCT_FREE PCT_USED BLOCKS AVG_ROW_LEN CHAIN_CNT
———- ———- ———- ———– ———-
10 3784 0 0
BYS@ bys3>analyze table test12 compute statistics; 对表做分析后,tabs里的BLOCKS信息才会变。
Table analyzed.
BYS@ bys3>select pct_free,pct_used,blocks,avg_row_len,chain_cnt from tabs where table_name=’TEST12′;
PCT_FREE PCT_USED BLOCKS AVG_ROW_LEN CHAIN_CNT
———- ———- ———- ———– ———-
10 1 0 0
BYS@ bys3>alter system dump datafile 4 block 922;
System altered.
BYS@ bys3>select value from v$diag_info where name like ‘De%’;
VALUE
—————————————————————————————————-
/u01/diag/rdbms/bys3/bys3/trace/bys3_ora_26432.trc

#########################DUMP信息如下:–可以看到空间已经回收了。高水位也已经下降
Extent Control Header
—————————————————————–
Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 8
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x0100039c ext#: 0 blk#: 4 ext size: 8
#blocks in seg. hdr’s freelists: 0
#blocks below: 1
mapblk 0x00000000 offset: 0
Unlocked
——————————————————–
Low HighWater Mark :
Highwater:: 0x0100039c ext#: 0 blk#: 4 ext size: 8
#blocks in seg. hdr’s freelists: 0
#blocks below: 1
mapblk 0x00000000 offset: 0
Level 1 BMB for High HWM block: 0x01000398
Level 1 BMB for Low HWM block: 0x01000398
——————————————————–
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x01000399
Last Level 1 BMB: 0x01000398
Last Level II BMB: 0x01000399
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 1 obj#: 23303 flag: 0x10000000
Inc # 1
Extent Map
—————————————————————–
0x01000398 length: 8

Auxillary Map
——————————————————–
Extent 0 : L1 dba: 0x01000398 Data dba: 0x0100039b
——————————————————–

Second Level Bitmap block DBAs
——————————————————–
DBA 1: 0x01000399
End dump data blocks tsn: 4 file#: 4 minblk 922 maxblk 922
##################################

2.TRUNCATE操作直接就可以回收空间,改变高水位–但是如果非分区表,没有DELETE应用场景多。

create table test13 as select * from dba_objects;
BYS@ bys3>alter system checkpoint;
System altered.
BYS@ bys3>alter system dump datafile 4 block 466;
System altered.
#############DUMP文件信息:
Extent Control Header
—————————————————————–
Extent Header:: spare1: 0 spare2: 0 #extents: 17 #blocks: 256
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x010011f5 ext#: 16 blk#: 117 ext size: 128
#blocks in seg. hdr’s freelists: 0
#blocks below: 245
mapblk 0x00000000 offset: 16
Unlocked
——————————————————–
Low HighWater Mark :
Highwater:: 0x010011f5 ext#: 16 blk#: 117 ext size: 128
#blocks in seg. hdr’s freelists: 0
#blocks below: 245
mapblk 0x00000000 offset: 16
Level 1 BMB for High HWM block: 0x01001181
Level 1 BMB for Low HWM block: 0x01001181
——————————————————–
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x010001d1
Last Level 1 BMB: 0x01001181
Last Level II BMB: 0x010001d1
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 17 obj#: 23300 flag: 0x10000000
Inc # 0
Extent Map

################

做TRUNCATE操作然后DUMP段头

BYS@ bys3>truncate table test13;
Table truncated.
BYS@ bys3>alter system checkpoint;
System altered.
BYS@ bys3>alter system dump datafile 4 block 466;
System altered.
#########################

Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 8
last map 0x00000000 #maps: 0 offset: 2716
Highwater:: 0x010001d3 ext#: 0 blk#: 3 ext size: 8
#blocks in seg. hdr’s freelists: 0
#blocks below: 0
mapblk 0x00000000 offset: 0
Disk Lock:: Locked by xid: 0x0002.019.00001354
——————————————————–
Low HighWater Mark :
Highwater:: 0x010001d3 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: 0x010001d0
Level 1 BMB for Low HWM block: 0x010001d0
——————————————————–
Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0
L2 Array start offset: 0x00001434
First Level 3 BMB: 0x00000000
L2 Hint for inserts: 0x010001d1
Last Level 1 BMB: 0x010001d0
Last Level II BMB: 0x010001d1
Last Level III BMB: 0x00000000
Map Header:: next 0x00000000 #extents: 1 obj#: 23304 flag: 0x10000000
Inc # 0
Extent Map
—————————————————————–
0x010001d0 length: 8

Auxillary Map
——————————————————–
Extent 0 : L1 dba: 0x010001d0 Data dba: 0x010001d3
——————————————————–
Second Level Bitmap block DBAs
——————————————————–
DBA 1: 0x010001d1


推荐阅读
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
手机用户2602904231
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有