数据库程序员面试分类真题11.docx
《数据库程序员面试分类真题11.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分类真题11.docx(33页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分类真题11筒答题1. 数据库和实例的区别是什么?正确答案:数据库(DatabaSe)是一个数据集合,Oracle数据库将其数据存放在数据文件中。在物理结构上,OraCle数据库必(江南博哥)需的3类文件分别是数据文件、控制文件和联机Redo志文件。在逻辑结构上,OraC控数据库由表空间、段、区和块组成。数据库名称由DBMAME来标识。实例(InStance)是操作Oracle数据库的一种手段。它是由OS分配的一块内存(包括SGA和PGA)和一些后台进程(PMoN、SMONx1.GWR.CKHDBWn等)组成的。一个数据库可以被个实例(SingIeInstance,单实例)或多
2、个实例访问或挂载(RAC,集群)。实例启动时读取初始化参数文件(SPFl1.E或PFl1.E)。实例名称由INSTANCENAME来标识。考点逻辑结构2. 在OraCIe中,数据块、RedO日志块及控制文件数据块的大小分别是多少?如何查询?正确答案:这3种数据块分别介绍如下:D数据块(DataBlock),是读写数据文件的母小单位,默认是8KB,可以通过SQ1.语句“SE1.ECTFI1.E#,NAME,B1.OCK_SIZEFROMV$DATAFl1.E句查询,单位为BYTE2) RedoR志数据块(Redo1.ogBlock),其大小一般等于操作系统的系统块的大小,一般为512B或4096
3、B,可以通过SQ1.语句“SE1.ECTB1.OCKSIZEHKOMV$1.OG:w或“SE1.ECT1.EBSZFROMXSKCC1.E;w查询,单位为BYTE。3)控制文件数据块(ControlFileBlock),默认为16KB,可以通过SQ1.语句“SE1.ECTB1.OCK_SIZEFROMV$C0NTRO1.FI1.E;”查询,单位为BYTE。考点逻辑结构3. 行链接和行迁移有什么区别?正确答案:当一行的数据过长而不能存储在单个数据块中时.,可能发生两种事情:行链接(ROWChaining)或行迁移(RoWVigration)。D行链接:当第一次插入行时,由于行太长而不能容纳在一个
4、数据块中时,就会发生行链接。在这种情况下,OraCle会使用与该块链接的一个或多个数据块来容纳该行的数据。行链接经常在插入比较大的行时才会发生,例如包含1.oNG、1.oNGROW、1.oB等类型的数据。在这些情况下,行链接是不可避免的。行链接通常由INSERT操作引起。2)行迁移:当一个行上的更新操作导致当前的数据增加以至于不能再容纳在当前块,这个时候就需要进行行迁移,在这种情况下,OraCle将会迁移整行数据到一个新的数据块中。一个行迁移意味着整行数据都将会移动,原始的数据块上仅仅保留的是指向新块的一个地址信息。发生行迁移的时候行的ROWID不会改变。行迁移的情况主要是由于表上的PCTFR
5、EE参数设置过小所致,所以必须设置一个合适的PCTFREE参数。可以使用exp/imp工具导入导出来处理行迁移。行迁移通常由UPDATE操作引起。考点逻辑结构4. Oracle数据库块由哪几部分组成?正确答窠:操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小。Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块。数据库块也称逻辑块或OraCIe块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DBB1.OCKSIZE决定,可以定义数据块为2KB、4KB、8KB
6、、16KB、32KB甚至更大,默认OraCIe块大小是8KB。若一旦设置了OraCle数据块的大小,则在整个数据库生命期间不能被更改。使用一个合适的OraCIe块大小对于数据库的调优是非常重要的。OS在每次执行I/O的时候是以OS的块为单位:Oracle在每次执行I/O的时候是以Oracle块为单位。Oracle块具有以下特点:1)最小的1/0单元。2)包含一个或多个OS块。3)大小由参数DB_B1.OCK_SIZE决定。4)数据库创建时曾置,双据库创建后不能更改。在OraCIe中,不论数据块中存储的是表CrAB1.E)、索引(INDEX)或簇表(C1.USTERTAB1.E),其内部结构都是
7、类似的。OraCle块的结构如下图所示。可用空间行数据数据块头(包括标濮内容和可变内容)表目录行目录由上图可以看出,-个OraCIe块大约由数据块头(BIoCkHeader,包括标准内容和可变内容,CommonndVariableHeader)表目录(TableDirectory)行目录(RowDirectory)可用空间(FreeSpace)和行数据(RowDala)这几部分组成。图中两个箭头表示一个数据块中的可用空间区的容量是可变的。D数据块头:主要包含有数据块地址的一些基本信息(块地址,BlockAddreSS)和段的类型(表段、索引段等)。块头自上而下进行增长。2)表目录:如果一个堆组
8、织表在此数据块中存储了数据行,那么该表的信息将被记录在数据块的表目录中。多个表可以将行存储在相同的块中。3)行目录:此区域包含数据块中存储的数据行的信息,即每个数据行片断(KowPieCe)在行数据中的地址。一个数据块中可能保存一个完整的数据行,也可能只保存数据行的一部分。当一个数据块(DataBloCk)的行目录空间被使用后,即使数据行被删除(DE1.ETE),行目录空间也不会被回收。举例来说,当一个曾经包含50条记录的数据块被清空后,其块头(Header)的行目录仍然占用100B的空间。仅在块中插入新行时,数据库才会重用此空间。4)可用空间:是指可以为以后的更新和插入操作分配的空间,大小受
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 程序员 面试 分类 11