SQL Sever索引
表的索引与字典中的索引非常相似。它可以极大地提高查询的速度。对一个较大的表来说,通过加索引,一个通常要花费几个小时来完成的查询只要几分钟就可以完成。(对于包含索引的数据库,SQL Sever需要一个可观的额外空间。例如,要建立一个聚簇索引,需要大约1.2倍于数据大小的空间。速度是需要付出代价的。)
索引有两种类型:聚簇索引和非聚簇索引。
- 在聚簇索引中,索引树的叶级页包含实际的数据:记录的索引顺序与物理顺序相同。
- 在非聚簇索引中,叶级页指向表中的记录:记录的物理顺序与逻辑顺序没有必然的联系。
聚簇索引非常象目录表,目录表的顺序与实际的页码顺序是一致的。非聚簇索引则更象书的标准索引表,索引表中的顺序通常与实际的页码顺序是不一致的。一本书也许有多个索引。例如,它也许同时有主题索引和作者索引。同样,一个表可以有多个非聚簇索引。通常情况下,你使用的是聚簇索引,但是你应该对两种类型索引的优缺点都有所理解。 - 每个表只能有一个聚簇索引,因为一个表中的记录只能以一种物理顺序存放。通常你要对一个表按照标识字段建立聚簇索引。但是,你也可以对其它类型的字段建立聚簇索引,如字符型,数值型和日期时间型字段。
从建立了聚簇索引的表中取出数据要比建立了非聚簇索引的表快。当你需要取出一定范围内的数据时,用聚簇索引也比用非聚簇索引好。例如,假设你用一个表来记录访问者在你网点上的活动。如果你想取出在一定时间段内的登录信息,你应该对这个表的DATETIME型字段建立聚簇索引。 - 对聚簇索引的主要限制是每个表只能建立一个聚簇索引。但是,一个表可以有不止一个非聚簇索引。实际上,对每个表你最多可以建立249个非聚簇索引。你也可以对一个表同时建立聚簇索引和非聚簇索引。
假如你不仅想根据日期,而且想根据用户名从你的网点活动日志中取数据。在这种情况下,同时建立一个聚簇索引和非聚簇索引是有效的。你可以对日期时间字段建立聚簇索引,对用户名字段建立非聚簇索引。如果你发现你需要更多的索引方式,你可以增加更多的非聚簇索引。 - 非聚簇索引需要大量的硬盘空间和内存。另外,虽然非聚簇索引可以提高从表中 取数据的速度,它也会降低向表中插入和更新数据的速度。每当你改变了一个建立了非聚簇索引的表中的数据时,必须同时更新索引。因此你对一个表建立非聚簇索引时要慎重考虑。如果你预计一个表需要频繁地更新数据,那么不要对它建立太多非聚簇索引。另外,如果硬盘和内存空间有限,也应该限制使用非聚簇索引的数量。
SQL 问题与解答:轻松掌握索引 http://technet.microsoft.com/zh-cn/magazine/gg703775.aspx
SQL 问题与解答:维护日志和索引:http://technet.microsoft.com/zh-cn/magazine/gg132708.aspx
SQL Sever索引相关推荐
- sql sever 索引和视图
文章目录 一.索引 二.视图 提示:以下是本篇文章正文内容,下面案例可供参考 一.索引 索引:是用来提高检索查询效率的 sql sever索引类型: 按存储结构划分: (1)聚集索引: 根据数据行的键 ...
- SQL 创建索引的作用以及如何创建索引
SQL 创建索引的作用以及如何创建索引 SQL 创建索引的作用 一.使用索引的优点: 1.通过唯一性索引(unique)可确保数据的唯一性 2.加快数据的检索速度 3.加快表之间的连接 4.减少分组和 ...
- sql sever 2008基础知识
下面是一些总结,如果执行时发现错误,可以查看错误消息进行解决,也可上网查资料 数据库的组成: 主数据文件:有且只有一个,扩展名为.mdf. 次数据文件:可以没有,也可以有任意个.扩展名为.ndf. 日 ...
- !!!SQL sever 函数表达
--SQL sever语言 数据库 函数 --声明变量 declare @a varchar(20) set @a = 'svdaj' --或 select @a = 'svdaj' print @a ...
- SQL Sever 2012
SQL Sever 2012[未完待续] 文章目录 SQL Sever 2012[未完待续] 数据库组成 系统数据库 创建数据库的方法 数据库常用对象 表 字段(表中的列) 字段(列)的数据类型[*重 ...
- SQL Sever 创建与管理数据表
目录 一.创建数据表 1.使用SQL Sever Management Studio创建数据表 2.使用CREATE TABLE语句创建数据库 二.管理数据表 1.查看表结构 1.1查看数据表的属性 ...
- (一)初识 SQL Sever 2019
目录 一.SQL Sever 简介 二.系统数据库 1.master 2.msdb 3.tempdb 4.model 三.用户数据库 一.SQL Sever 简介 数据库通常分为层次式数库.网络式数据 ...
- SQL Sever 2008 R2 数据库(2) ——数据库管理
在FJ集团的工作中,要用到SQL Sever 2008 R2 数据库,于是,在工作中学习,在学习中工作.我就喜欢这种状态!中意做笔记,好记性不如烂笔头,方便自己,同时也方便在此方面有需要者!资源共享, ...
- SQL Server 索引结构及其使用(二)(转)
SQL Server 索引结构及其使用(二) 作者:freedk 一.深入浅出理解索引结构 改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被 ...
最新文章
- 青源 LIVE 预告 | 复旦大学:NLP 的范式迁移
- 根据根据图片的url怎么取得图片ImageView对象
- 如何用 SpringBoot 实现并发登录人数控制(附代码)
- python中的列表生成式
- firewall mysql端口_Centos7 firewall开放3306端口
- oracle视图不能创建,ORACLEsoctt不能创建视图
- 生肖派对怎么放机器人_抖音生肖派对游戏
- NGUI_Atlas
- 中英文对照 —— 几何(数学)
- EXCEL VBAProject密码破解 工作表密码破解
- 重订增广(清朝·周希陶)
- 锐捷客户端的默认网关跟ipv4的网关不一样
- matlab有限差分一维导热,一维导热方程-有限差分法-matlab实现(汇编)
- 1982年图灵奖--斯蒂芬·库克简介
- Linux搭建小型服务器——文件共享以及邮件服务器
- 联想服务器装系统不能加载硬盘,联想电脑重装系统读不出硬盘怎么办
- 计算机一级表格减法,怎么把表格的数字全部加减
- 电源电路设计常用软件,哪个适合你的应用?
- 数据库课程设计个人总结
- 如何用纯 CSS 创作闪闪发光的霓虹灯文字