早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

在SQL Server 2008中,常常会发生数据库数据过大的情况,此时则需要对表进行处理,通常可采用人工分

题目

在SQL Server 2008中,常常会发生数据库数据过大的情况,此时则需要对表进行处理,通常可采用人工分割表的方法优化性能。下列有关分割表的说法,错误的是( )。

A.水平分割后,得到的子表结构相同

B.水平分割后,查询表中所有数据时需要使用JOIN操作

C.垂直分割后,所有表中均需保留原有表的主码

D.当查询表中所有数据时,使用分割表方法会增加查询表达式的复杂度

参考答案
正确答案:B
分割表增加了维护数据完整性的代价。分割表分为水平分割表和垂直分割表两种。水平分割表:一种是当多个过程频繁访问数据表的不同行时,水平分割表,并消除新表中的冗余数据列;另一种是当主要过程要重复访问部分行时,最好将被重复访问的这些行单独形成子集表(冗余储存),这在不考虑磁盘空问开销时显得十分重要,但在分割表以后,增加了维护难度,要用触发器立即更新、或用存储过程及应用代码批量更新,这也会增加额外的磁盘I/O开销。垂直分割表(不破坏第三范式):一种是当多个过程频繁访问表的不同列时,可将表垂直分成几个表,减少磁盘I/O(每行的数据列少,页存的数据行就多,相应占用的页就少),更新时不必考虑锁,没有冗余数据。缺点是在插入或删除数据时要考虑数据的完整性,用存储过程维护。另一种是当主要过程反复访问部分列时,最好将这部分被频繁访问的列数据单独存为一个子集表(冗余储存),这在不考虑磁盘空间开销时显得十分重要,但因此增加了重叠列的维护难度,要用触发器立即更新、或用存储过程及应用代码批量更新,这也会增加额外的磁盘I/O开销。垂直分割表可以达到最大化利用Cache的目的。水平分割后,查询数据需要使用UNION操作。垂直分割后,查询数据需要JOIN操作。