SQL语句精化实例[精选].docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL语句精化实例[精选]

4. 设有一个职员表为Customers,其上有客户姓名(Name),客户ID(ID)等列,表 执行如下语句: ? ?? ?CREATE CLUSTERED INDEX idx ON Customers(Name) ? ? 得到以下错误   ? ???Cannot create more than one clustered index ? ?? ?原因是什么,为什么为出错? 答:说明表上已经有了聚集索引,只能在同一张表上创建一个聚集索引。因为聚集索引会决定表的物理排列,由于只可能有一种排列方法,所以只能创建一个聚集索引。 ? ? 5. 设有一个职员表为Customers,其上有客户姓(Last Name),名字(First Name)客户ID(ID)等列,先在LastName 和FirstName上创建一个称为idxNames的非聚集的复合索引,然后在客户ID上创建唯一的聚集索引uidxID,说明在创建聚集索引时非聚集索引会有什么变化 答: 创建聚集索引时非聚集索引将被重建,因为创建聚集索引将改变表中行的物理位置,而且在有聚集索引的表上的非聚集索引的B树的叶级存放的所有的鍵值和其对应的聚集索引的关键字,而之前的非聚集索引的B树的叶级存放的是所有的键值和其相对应的行ID。因此要进行非聚集索引的重建。 6.? ?如果顾客表没有索引,SQL Server如何为客户Eva Corets查找行? 答:SQL Server必须执行表扫描,读取表中的每一行来查找符合要求的行。 ? ? 7.? ?一个表可以创建多少个聚集索引? 答: 一个。聚集索引定义数据页的物理存储并且表中的数据只能存储在一个位置。 8.? ?在表已经有聚集索引时,非聚集索引如何识别父行?在表没有聚集索引时,非聚集索引又如何识别数据行? ??答:在聚集索引存在时,非聚集索引为每一个被索引的行存储聚集索引。在没有聚 集索引时,非聚集索引存储文件ID、页码和数据行的RID。 9.? ?不包括索引的字段的扩展会导致页拆分,页拆分将把行移动到新的页中。这种移动会对表中的非聚集索引产生什么样的影响? 答:这对非聚集索引没有影响。如果存储有聚集索引,聚集的值不会改变。非聚集索引将继续指向行,因为聚集索引关键字没有改变。如果没有聚集索引,在原记录的位置会留下一个转发指针指向新的记录。在任一情况下,非聚集索引不需要改变。 10.? ?考虑在表中的company name、last name和first name列上创建一个组合聚集索引。在创建索引时,什么是应该考虑的重点,为什么要考虑?还有更好的解决方法么? 答:尽可能保持聚集索引键尽量的小。大的聚集索引键会在所有的非聚集键上产生较大的影响。聚集索引越大,其效率越低。键值增加时,该值需要占有页上更多的空间,这样的页就只能容纳少量的键值,导致聚集索引树(B树)变得更大。聚集索引越大(它就会有更多的非叶级),那么需要遍历索引树的I/O周期越长。 同样的,唯一的组合键最好作为非聚集索引或多索引来定义。 可以考虑更好的解决方法是在customerID列(如果存在)或last name列上创建索引。如果customerID列并不存在,应该考虑使用标识属性或添加包括有通过在行中抽取数据的不同部分而衍生出来的键值的新列。 创建并维护索引 1.? ?? ?假设你负责一家公司的数据库管理。用户向你抱怨查询据库Sales中的products表(表上建有idxProID索引)的速度太慢,你经过测试,发现可能是由于统计信息过时导致的。为了使将来不再发生这种问题,你要用哪个语句保证整个数据库的统计自动更新。 ? ? A DBCC SHOW_STATISTICS (products, idxProID) ? ? B? ?UPDATE STATISTICS ‘products’ ? ? C? ?sp_autostats ‘products ‘,ON ? ? D ALTER DATABASE Sales SET AUTO_CREATE_ STATISTICS ON 答:D 2.? ?? ?已知数据库Sales中的products表上建有idxProID索引,你想知道这个索引是个聚集索引还是一个非聚集索引,可用以下哪个语句?(不定项选择) ? ? A sp_helpindex products idxProID ? ? B sp_help idxProID ? ? C sp_help products ? ? D USE Sales ? ?? ???GO SELECT indid ? ?? ?? ?? ?FROM dbo. sysindexes WHERE name = ‘idxProID’ 答:C 3.? ?? ?在你管理的数

文档评论(0)

dart001 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档