• sqlserver 索引


     

    SqlServer索引的原理与应用

    索引类型

    •          唯一索引:唯一索引不允许两行具有相同的索引值

    •          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空

    •          聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个

    •          非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个

    在stuMarks表的writtenExam列创建索引:

    CREATE NONCLUSTERED INDEX IX_writtenExam

         ON stuMarks(writtenExam)

              WITH FILLFACTOR= 30

    GO

    /*-----指定按索引 IX_writtenExam 查询----*/

    SELECT * FROM stuMarks  (INDEX=IX_writtenExam)

        WHERE writtenExam BETWEEN 60 AND 90

    虽然我们可以指定SQL Server按哪个索引进行数据查询,但一般不需要我们人工指定。SQL Server将会根据我们创建的索引,自动优化查询 。

    索引的优缺点

    •          优点

    –         加快访问速度

    –         加强行的唯一性

    •          缺点

    –         带索引的表在数据库中需要更多的存储空间

    –         操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新

    创建索引的指导原则

    •          请按照下列标准选择建立索引的列。

    –         该列用于频繁搜索

    –         该列用于对数据进行排序

    •          请不要使用下面的列创建索引:

    –         列中仅包含几个不同的值。

    –         表中仅包含几行。为小型表创建索引可能不太划算,因为SQL Server在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长

  • 相关阅读:
    C++教程_w3cschool
    C++教程|菜鸟教程
    C++编程兵书
    学习C++从入门到精通的的十本最经典书籍
    从大公司到创业公司,技术人转型怎样转变思路与处事之道?
    c# 与 c++ 交互
    c++ 使用vs2010调用 win32api
    Excel学习笔记
    Windows环境变量设置无效解决办法——DOS窗口设置环境变量
    MAVEN ERROR: unable to find valid certification path to requested target 解决办法
  • 原文地址:https://www.cnblogs.com/zyy1688/p/10002392.html
Copyright © 2020-2023  润新知