当前位置: 首页 > news >正文

网站管理系统后台网站绝对布局

网站管理系统后台,网站绝对布局,网站空间空间租赁,wordpress 插件 下载在move操作的时候#xff0c;进行的是block之间的数据copy#xff0c;所以table所位于的block的区域会发生变化#xff1b;所有行物理存储的顺序不会发生变化#xff0c;但行号会变成按AAA增1的顺子#xff0c;所以block里行会挪紧#xff0c;实现了消除HWM和行碎片(包括…在move操作的时候进行的是block之间的数据copy所以table所位于的block的区域会发生变化所有行物理存储的顺序不会发生变化但行号会变成按AAA增1的顺子所以block里行会挪紧实现了消除HWM和行碎片(包括行迁移问题)但不会释放申请的空间(其他segment不能使用此部分的空闲空间只能本segment增加数据时使用)得到了空闲空间但不释放更说明是block之间的copy只是block内行会挪紧。当前的tablespace中需要有1倍于table的空闲空间以供使用。所有行的rowid都发生了变化index是通过rowid来fetch数据行的所以table上的index是必须要rebuild的。table在进行move操作时table上加了exclusive lock我们只能对它进行select的操作。反过来说当我们的一个session对table进行DML操作且没有commit时在另一个session中是不能对这个table进行move操作的否则oracle会返回这样的错误信息ORA-00054: 资源正忙要求指定 NOWAIT。最后重新编译数据库所有失效的对象收集新的table统计分析数据。实验1.建表并插入数据SQL create table sjh.test1(id int) tablespace users;表已创建。SQL insert into sjh.test1 values(1);已创建 1 行。SQL insert into sjh.test1 values(2);已创建 1 行。SQL insert into sjh.test1 values(3);已创建 1 行。SQL insert into sjh.test1 values(4);已创建 1 行。SQL insert into sjh.test1 values(5);已创建 1 行。SQL insert into sjh.test1 values(6);已创建 1 行。SQL insert into sjh.test1 values(7);已创建 1 行。SQL insert into sjh.test1 values(8);已创建 1 行。SQL commit;提交完成。SQL select * from sjh.test1;ID----------12345678已选择8行。2.查看表的rowid信息和block id信息SQL select rowid,id from sjh.test1;ROWID                      ID------------------ ----------AAAMlQAAEAAAABHAAA          1AAAMlQAAEAAAABHAAB          2AAAMlQAAEAAAABHAAC          3AAAMlQAAEAAAABHAAD          4AAAMlQAAEAAAABHAAE          5AAAMlQAAEAAAABHAAF          6AAAMlQAAEAAAABHAAG          7AAAMlQAAEAAAABHAAH          8已选择8行。SQL select EXTENT_ID,FILE_ID,RELATIVE_FNO,BLOCK_ID,BLOCKS2   from dba_extents where segment_nameTEST1;EXTENT_ID    FILE_ID RELATIVE_FNO   BLOCK_ID     BLOCKS---------- ---------- ------------ ---------- ----------0          4            4         65          8--8条记录都在一个块上(AAAABH)这里简单介绍一下ROWID的知识ROWID 在磁盘上需要10个字节的存储空间并使用18个字符来显示它包含下列组件数据对象编号每个数据对象如表或索引在创建时都分配有此编号并且此编号在数据库中是唯一的相关文件编号此编号对于一个表空间中的每个文件是唯一的块编号表示包含此行的块在文件中的位置行编号标识块头中行目录位置的位置在内部数据对象编号需要32 位相关文件编号需要10 位块编号需要22位行编号需要16 位加起来总共是80 位或10 个字节ROWID 使用以64 为基数的编码方案来显示该方案将六个位置用于数据对象编号三个位置用于相关文件编号六个位置用于块编号三个位置用于行编号以64 为基数的编码方案使用字符A-Z a-z 0-9  和/共64 个字符。如下例所示AAAMlQ AAE AAAABH AAA在本例中AAAMlQ    是数据对象编号AAE       是相关文件编号AAAABH   是块编号AAA      是行编号3.做一些DML操作再观察ROWID有没有发生变化SQL delete from sjh.test1 where id1;已删除 1 行。SQL delete from sjh.test1 where id3;已删除 1 行。SQL delete from sjh.test1 where id5;已删除 1 行。SQL commit;提交完成。SQL select rowid,id from sjh.test1;ROWID                      ID------------------ ----------AAAMlQAAEAAAABHAAB          2AAAMlQAAEAAAABHAAD          4AAAMlQAAEAAAABHAAF          6AAAMlQAAEAAAABHAAG          7AAAMlQAAEAAAABHAAH          8--我们看到ROWID保持不变。4.做MOVE操作然后观察ROWID的情况SQL alter table sjh.test1 move;表已更改。SQL select rowid,id from sjh.test1;ROWID                      ID------------------ ----------AAAMlRAAEAAAABMAAA          2AAAMlRAAEAAAABMAAB          4AAAMlRAAEAAAABMAAC          6AAAMlRAAEAAAABMAAD          7AAAMlRAAEAAAABMAAE          8SQL select EXTENT_ID,FILE_ID,RELATIVE_FNO,BLOCK_ID,BLOCKS2   from dba_extents where segment_nameTEST1;EXTENT_ID    FILE_ID RELATIVE_FNO   BLOCK_ID     BLOCKS---------- ---------- ------------ ---------- ----------0          4            4         73          8--ROWID发生变化BLOCK_ID由原来的65变为73BLOCK的编号由原来的AAAABH变为AAAABM5.move对HWM的影响SQL create table my_objects tablespace HWM2   as select * from all_objects;SQL delete from my_objects where rownum10000;9999 rows deletedSQL select count(*) from my_objects;COUNT(*)----------21015SQL exec show_space(p_segname  MY_OBJECTS,p_owner  DLINGER,p_type  TABLE);Total Blocks............................425Total Bytes.............................3481600Unused Blocks...........................3Unused Bytes............................24576Last Used Ext FileId....................11Last Used Ext BlockId...................1294Last Used Block.........................2这里HWM425 - 3  1  423然后对table MY_OBJECTS进行move操作SQL alter table MY_OBJECTS move;表已更改。SQL exec show_space(p_segname  MY_OBJECTS,p_owner  DLINGER,p_type  TABLE);Total Blocks............................290Total Bytes.............................2375680Unused Blocks...........................1Unused Bytes............................8192Last Used Ext FileId....................11Last Used Ext BlockId...................1584Last Used Block.........................4我们可以看到table MY_OBJECTS的HWM从423移动到290table的HWM降低了(show_space是自定义的一个过程)。Move的一些用法:以下是alter table 中move子句的完整语法我们介绍其中的几点MOVE [ONLINE][segment_attributes_clause][data_segment_compression][index_org_table_clause][ { LOB_storage_clause | varray_col_properties }[ { LOB_storage_clause | varray_col_properties } ]...][parallel_clause]a. 我们可以使用move将一个table从当前的tablespace上移动到另一个tablespace上如alter table t move tablespace tablespace_name;b. 我们还可以用move来改变table已有的block的存储参数,如alter table t move storage (initial 30k next 50k);c.另外move操作也可以用来解决table中的行迁移的问题。使用move的一些注意事项:a. table上的index需要rebuild在前面我们讨论过move操作后数据的rowid发生了改变我们知道index是通过rowid来fetch数据行的所以table上的index是必须要rebuild的。SQL create index i_my_objects on my_objects (object_id);Index createdSQL alter table my_objects move;Table alteredSQL select index_name,status from user_indexes where index_nameI_MY_OBJECTS;INDEX_NAME                     STATUS------------------------------ --------I_MY_OBJECTS                   UNUSABLE从这里可以看到当table MY_OBJECTS进行move操作后该table 上的inedx的状态为UNUSABLE这时我们可以使用alter index I_MY_OBJECTS rebuild online的命令对index I_MY_OBJECTS进行在线rebuild。b. move时对table的锁定当我们对table MY_OBJECTS进行move操作时查询v$locked_objects视图可以发现table MY_OBJECTS上加了exclusive lockSQLselect OBJECT_ID, SESSION_ID,ORACLE_USERNAME,LOCKED_MODE from v$locked_objects;OBJECT_ID SESSION_ID ORACLE_USERNAME    LOCKED_MODE---------- ---------- ------------------ -----------32471          9 DLINGER                      6SQL select object_id from user_objects where object_name  MY_OBJECTS;OBJECT_ID----------32471这就意味着table在进行move操作时我们只能对它进行select的操作。反过来说当我们的一个session对table进行DML操作且没有commit时在另一个session中是不能对这个table进行move操作的否则oracle会返回这样的错误信息ORA-00054: 资源正忙要求指定 NOWAIT。c. 关于move时空间使用的问题当我们使用alter table move来降低table的HWM时有一点是需要注意的这时当前的tablespace中需要有1倍于table的空闲空间以供使用SQL CREATE TABLESPACE TEST12   DATAFILE D:\ORACLE\ORADATA\ORACLE9I\TEST1.dbf SIZE 5M3   UNIFORM SIZE 128K ;SQL create table my_objects tablespace test1 as select * from all_objects;表已创建。SQL select bytes/1024/1024 from user_segments where segment_nameMY_OBJECTS;BYTES/1024/1024---------------3.125SQL alter table MY_OBJECTS move;alter table MY_OBJECTS move*ERROR 位于第 1 行:ORA-01652: 无法通过16(在表空间TEST1中)扩展 temp 段SQL ALTER DATABASE2  DATAFILE D:\ORACLE\ORADATA\ORACLE9I\TEST1.DBF RESIZE 7M;数据库已更改。SQL alter table MY_OBJECTS move;表已更改。
http://www.huolong8.cn/news/313429/

相关文章:

  • 番禺网站开发查商标
  • 小说网站开发教程网站建设与网页设计考试题
  • 建设工程信息网站宁夏交通建设质监局官方网站
  • 大气网站欣赏网站建设实验报告模板
  • 一个美工做网站好做吗云匠网
  • 三网站合一建设网站哪里好
  • 网站建设福州公司制作游戏编辑器app
  • 朝阳网络 网站建设长沙设计网站效果
  • 学风建设网站的优势wordpress 图片位置
  • 建设网站建设网页制作0402高设计词wordpress制作主题
  • 网站建设背景介绍怎么查看网页源代码
  • 新手怎么做网站内容维护企业不开了网站备案吗
  • 电子科技企业网站建设wordpress教程网盘
  • 本地网站建设教程沃尔玛网上商城app官方下载
  • 做外贸怎么看外国网站网站建站模板
  • wordpress仿站js如何导入产品外观设计用什么软件
  • 河北手机网站制作企业中国航发网上商城登录入口
  • 网站主机免备案吗上海建筑工程网站
  • 网站后台免费模板驻马店做网站多少钱
  • 深入网站开发和运维京东简约的网页设计欣赏
  • 奥联网站建设深圳龙岗网站建设哪家好公司
  • 装修网站建设价格黑蒜东莞网站建设
  • 婚介网站怎么做网络广告投放网站
  • 简单的网站开发的软件有哪些关键词搜索工具
  • 青岛的网站建设公司哪家好济宁网站开发公司
  • 关于阅读类网站的建设规划书wordpress中文相册插件下载
  • 预付做网站订金怎么做账中国银行网站建设
  • 怎么免费开网站python可以用来干什么
  • 网站开发定制合同谭谭心怎么建设网站
  • 互联网推广渠道系统优化建议