- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server--chap7--第7章 索引及其应用 SQL Server 2000 在有哪些信誉好的足球投注网站数据值时,先对非聚集索引进行有哪些信誉好的足球投注网站,找到数据值在表中的位置,然后从该位置直接检索数据。这使非聚集索引成为精确匹配查询的最佳方法 要考虑建非聚集索引的情况 查询所获数据量较少时 某字段中的数据的唯一性比较高时 例:以Northwind库中Customers表为例来解释SQL Server是如何利用非聚集索引在表上检索数据 假设在Customers表的City字段上建有非聚集索引,用户执行如下查询: SELECT CustomerID, CompanyName FROM Customers WHERE City=’Reims’ SQL Server检索数据步骤如下: 系统发现字段City上有索引,而且适合以上查询,故使用该索引 检索从索引的根级出发(Page 40),开始比较索引的值。若查询值Reims?该索引值,则继续到同一页中的下一个索引值。如果查询值该索引值,则跳到上一个索引中指定的页(左边页) 在索引的根页查询到最后一个索引值(Paris),则跳到Paris所指向的索引页(Page 45) 在45页继续查找,直到Salzburg。由于ReimsSalzburg,所以跳到上一个索引(Reggi)中指定的索引页(Page 66) 因为66页是叶级页,所以SQL Server在这页中从第一行开始逐行扫描,直到找到Reims 通过索引中的Reims得到指向实际数据页上记录行的指针2203 通过该指针,从数据页上读取字段City等于Reims的记录行的相关字段信息 7.4 建立索引 索引的建立可以通过两种途径实现:一是在查询分析器窗口中用SQL命令建立;另一种是利用企业管理器以图形化的界面建立索引 SQL Server只选用那些能加快数据的查询速度的索引,可利用性是建立索引的首要条件 若用索引查询的速度不如扫描法速度快,系统仍会采用表扫描法进行检索 建立不能被SQL Server所采用的索引只会增加系统的负担,降低检索的速度 7.4.1 在查询分析器窗口中用SQL命令建立索引 CREATE[UNIQUE][clustered|nonclustered] INDEX index_name ON[[database.]ower.]{table_name|view_name} (column_name1 [,column_name2…]) 簇/非簇索引 索引关键字字段上不允许有相同内容的记录 生成索引的中间结果存在 tempdb库中 过期的索引统计不自动重新计算 [WITH [FILLFACTOR=fillfactor] [[,]IGNORE_DUP_KEY] [[,]DROP_EXISTING] [[,]STATISTICS_NORECOMPUTE] [[,]SORT_IN_TEMPDB?] ] [ON filegroup] 续上页 索引存储页的填充率 修改数据时控制的反应 指定应除去并重建已命名的先前存在的聚集/非聚集索引 注意事项: (1)若创建了PRIMARY KEY约束或UNIQUE约束时 系统将自动为建有这些约束的列创建聚集索引 当删除PRIMARY KEY约束或UNIQUE约束时,这些列上创建的聚集索引也会被自动删除 (2)执行CREATE INDEX语句创建索引必须由是表的所有者完成 (3)每张表只能存在一个聚集索引 (4)聚集索引的平均大小是表大小的5%,但是,由于被索引列的不同聚集索引的大小也会发生变化 (5)当数据页中的数据行被删除时,所占空间将被回收并用于新的数据行 例:在Northwind数据库中的Test_Table表的ContactName列上创建非聚集索引ContactIndex USE Northwind GO CREATE NONCLUSTERED INDEX ContactIndex ON [dbo].[Test_Table] ([ContactName]) ON [PRIMARY] 例:在Northwind数据库中的Test_Table表的CompanyName列上创建唯一索引CompanyIndex USE Northwind GO CREATE UNIQUE INDEX CompanyIndex ON [dbo].[Test_Table] ([CompanyName]) ON [PRIMARY] 若在表中存在重复值的列上创建唯一索引, CREATE INDEX语句将失败并返回带有第一个重复值的错误信息 但其他重复的值也可能存在 SELECT Colu
文档评论(0)