骆驼空间站

简单就是美,不受任何商业的驱使,我们有自己的圈子

博客园 首页 新随笔 联系 订阅 管理
Assume   that   a   database   designer   plans   to   use   the   following   SQL   statement   to   create   a   relational 
table   Driver. 

CREATE   TABLE   Driver   ( 
Licence#   NUMBER(8), 
FName   VARCHAR(30), 
LName   VARCHAR(30), 
Address   VARCHAR(50), 
Phone#   CHAR(10), 
LicenceClass   CHAR, 
DOB   DATE, 
LicenceExpireDate   DATE, 
IssueState   CHAR(3))   PCTFREE   20   TABLESPACE   ATO; 

Assume   that   size   of   disk   data   block   is   equal   to   4K   bytes. 
1)   Consider   a   model   of   data   block   explained   in   the   course,   assume   a   sample   data   block   consists   of   a   fixed   size   header   (100   bytes),   row   directory   (8   bytes   per   single   entry),   and   data   area.   Find   the   total   number   of   data   blocks   needed   to   store   all   106   rows   in   the   table   Driver. 
Show   all   calculations. 

2)   Assume   that   tablespace   ATO   has   free   extents   of   10MB   each.   Assume   that   the   initial   storage   allocation   should   be   large   enough   to   accommodate   information   about   5*105   drivers.Propose   a   STORAGE   clause   for   create   table   statement   given   above.   
Show   all   calculations.

1.   一条记录的长度=8+30+30+50+10+1+8+8+3=148   bytes 
      每条记录加8   bytes的指针区=148+8=156 
      共106条记录     106*156=16536   bytes 

      每个block的data区=(4*1024-100)*(1-0.2)=3196.8 

      16536/3196=5.17=6块 
      需要六个数据块 

2.   需要存放的数据   5*105*156=81900   bytes 

      需要的块数   81900/3196=25.63=27   块 

      总大小   27*4=108K 
    
CREATE   TABLE   Driver   ( 
Licence#   NUMBER(8), 
FName   VARCHAR(30), 
LName   VARCHAR(30), 
Address   VARCHAR(50), 
Phone#   CHAR(10), 
LicenceClass   CHAR, 
DOB   DATE, 
LicenceExpireDate   DATE, 
IssueState   CHAR(3))   
PCTFREE   20   TABLESPACE   ATO 
STORAGE(INITIAL   108K); 
 
2:简单描述table / segment / extent / block之间的关系
  table创建时,默认创建了一个data segment,
  每个data segment含有min extents指定的extents数,
  每个extent据据表空间的存储参数分配一定数量的blocks
  3:描述tablespace和datafile之间的关系
  一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内,
  table中的数据,通过hash算法分布在tablespace中的各个datafile中,
  tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
  4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点
  本地管理表空间(Locally Managed Tablespace简称LMT)
  8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用。
  字典管理表空间(Dictionary-Managed Tablespace简称DMT)
  8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。
  动段空间管理(ASSM),
  它首次出现在Oracle920里有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,
  能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,
  ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。

posted on 2009-02-17 14:15  骆驼SPACE  阅读(1397)  评论(0编辑  收藏  举报