SQL Server 2005数据库迁移与视图索引优化实战

4星 · 超过85%的资源 需积分: 0 11 下载量 102 浏览量 更新于2024-08-02 收藏 1.06MB PDF 举报
本文档提供了一些关于SQL Server 2005数据库开发与实现的习题,主要针对70-431考试的复习。以下是两道题目及其解答和相关知识点: 1. 题目1:确保从SQL Server 2000数据库导入客户数据时,国家代码的完整性 在迁移过程中,为了保持参照完整性,通常会在客户表和国别表之间建立外键约束。题目要求如果国家代码在客户表中存在,但在新数据库中的国别表中没有对应记录,导入操作应该失败。然而,题目强调不能让导入过程因国别表无记录而终止,这意味着需要一种方法来处理这种情况,而不是简单地依赖外键约束。答案是C,创建一个DML INSTEAD OF触发器。这种触发器会在尝试插入无效外键值时执行,从而允许错误被记录并继续导入其他数据,同时记录下未成功匹配的错误。 2. 题目2:创建视图并添加索引 题目涉及到在SQL Server 2005中创建视图`v_Customer`,该视图是从`Customers`表中选取特定列。为了在视图上创建索引,需要考虑如何优化查询性能。选项A提到将`Picture`列类型从`Varbinary(max)`改为`image`,但通常情况下,除非存储大量二进制数据,否则不推荐这样做,因为`image`类型的大小限制可能影响性能。选项B涉及模式名,这在创建视图时通常不需要显式指定,除非有特定的命名空间需求。正确的做法是使用`WITH SCHEMABINDING`(选项C),这确保了视图的定义不会改变,有利于索引的稳定性和查询优化。选项D使用`*`符号选择所有列不是创建索引的好策略,因为这可能导致不必要的数据复制,且可能使索引无法充分利用。 对于视图创建和索引设置,应选择C(WITH SCHEMABINDING)以提升查询性能,并结合业务需求评估是否需要对`Picture`列类型进行调整。在实际操作中,可能还需要根据具体情况分析,例如是否需要对特定列进行索引,以及是否有空间性能上的考量。