`

给表加上聚集索引和非聚集索引

 
阅读更多
创建简单非聚集索引
以下示例为 Purchasing.ProductVendor 表的 BusinessEntityID 列创建非聚集索引。


USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_ProductVendor_VendorID')
    DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID 
    ON Purchasing.ProductVendor (BusinessEntityID); 
GO

 

B. 创建简单非聚集组合索引
以下示例为 Sales.SalesPerson 表的 SalesQuota 和 SalesYTD 列创建非聚集组合索引。

 
USE AdventureWorks2008R2
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_SalesPerson_SalesQuota_SalesYTD')
    DROP INDEX IX_SalesPerson_SalesQuota_SalesYTD ON Sales.SalesPerson ;
GO
CREATE NONCLUSTERED INDEX IX_SalesPerson_SalesQuota_SalesYTD
    ON Sales.SalesPerson (SalesQuota, SalesYTD);
GO

 

C. 创建唯一非聚集索引
以下示例为 Production.UnitMeasure 表的 Name 列创建唯一的非聚集索引。该索引将强制插入 Name 列中的数据具有唯一性。

  
USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name from sys.indexes
             WHERE name = N'AK_UnitMeasure_Name')
    DROP INDEX AK_UnitMeasure_Name ON Production.UnitMeasure;
GO
CREATE UNIQUE INDEX AK_UnitMeasure_Name 
    ON Production.UnitMeasure(Name);
GO

 
分享到:
评论

相关推荐

    Sql Server中的非聚集索引详细介

    然后给你在关键的字段加上非聚集索引后。。。才发现提速比阿斯顿马丁还要快。。。那么一个问题来了,为什么非聚集索引能提速这么快。。。怎么做到的???是不是非常的好奇??? 这篇我们来解开神秘面纱。  一:...

    聚集索引表插入数据和删除数据的方式是怎样的

    先创建一个聚集索引表这个表每个行由int(4字节),char(999字节)和varchar(0字节组成),所以每...10:IAM页面IndexID索引ID,0代表堆,1代表聚集索引,2-250代表非聚集索引大于250就是text或image字段看一下页面内容我们创

    数据库索引和分类

    非聚集索引:就是给普通字段加上索引。 联合索引:好几个字段组成的索引称为联合索引。 索引的底层是? 数据库索引的底层是B+树。 B+树的中间元素不储存数据,只储存索引,数据存储在B+树的叶子节点处,一个节点可以...

    SQL Server数据库中伪列及伪列的含义详解

    下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值;对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述。 这里主要...

    SQL查询安全性及性能优化

    非聚集索引也有扫描和查找 它们的区别: 扫描:可以理解为对数据进行顺序访问,并未使用索引进行查找 查找:可以理解为用索引进行查找 因此查找效率高于索引扫描效率 执行计划的意义 对于我们开发高质量SQL是...

    sql总结.doc

    聚簇索引包括主键索引和二级索引(二级索引是在对非主键字段建立索引后,通过索引找到对应这个非主键字段的主键,再进行主键索引,找到B+树中叶子结点);(聚簇索引B+树中叶子结点存放的是数据和指向下一条数据的...

    mysql数据库的基本操作语法

    自动:当表上定义主键约束、唯一、外键约束时,该表会被系统自动添加上索引。 手动:手动在相关表或列上增加索引,提高查询速度。 删除索引方式: 自动:当表对象被删除时,该表上的索引自动被删除 手动:手动删除...

    如何阻止SELECT * 语句

     对于指定的查询,你不能定义覆盖非聚集索引来克服执行计划里的查找(lookup)运算符,因为你会在额外的索引里重复你的数据……  现在的问题是你如何阻止SELECT*语句?当然你可以进行代码审核,你可以提供佳模式...

    有关mysql的一些小技巧

    InnoDB因为主键聚集索引的关系,如果没有主键或者主键非序列的情况下,导入会越来越慢,如何快速的迁移数据到InnoDB?借助MyISAM的力量 是很靠谱的,先关闭InnoDB的Buffer Pool,把内存空出来,建一张没有任何索引...

    MySQL命令大全

    Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。 Delete: 删除表的记录。 Drop: 删除数据表或数据库。 INDEX: 建立或删除索引。 Insert: 增加表的记录。 Select: 显示/...

    MYSQL常用命令大全

    Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。 Delete: 删除表的记录。 Drop: 删除数据表或数据库。 INDEX: 建立或删除索引。 Insert: 增加表的记录。 Select: 显示/搜索表...

Global site tag (gtag.js) - Google Analytics