加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL开发中容易忽视的一些小地方(五)

发布时间:2016-09-12 11:33:15 所属栏目:MsSql教程 来源:站长网
导读:背景: 索引分类:众所周知,索引分为聚集索引和非聚集索引. 索引优点:加速数据查询. 问题:然而我们真的清楚索引的应用吗?你写的查询语句是否能充分应用上索引,或
背景:

索引分类:众所周知,索引分为聚集索引和非聚集索引.

索引优点:加速数据查询.

问题:然而我们真的清楚索引的应用吗?你写的查询语句是否能充分应用上索引,或者说你如何设计你的索引让它更高效?

经历:以前本人只知道索引的好处,但是是否能够真正让它发挥作用,并无太多理论,为些本人做了些DEMO,来简单说明下什么情况下才能充分利用索引.

案例:

这里建立一个学生表:有如下字段,此时表中没有建立任何索引.CREATE TABLE [dbo].[student](
  [ID] [int] IDENTITY(1,1) NOT NULL,--学生ID
  [sUserName] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,--学生姓名
  [sAddress] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,--学生地址
  [classID] [int] NULL,--学生所属班级ID
  [create_date] [datetime] NULL CONSTRAINT [DF_student_create_date] DEFAULT (getdate()) --入校时间
) ON [PRIMARY]

业务需求:

查询班级ID为9的所有学生的姓名和地址.

情况一:

--字段没有建立任何索引

select sUserName,sAddress from student

where classID=9

执行计划如下图:

SQL开发中容易忽视的一些小地方(五)

结论:在没有任何索引的情况下,查询会选择全表扫描.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读