日度归档:2018年10月2日

MSSQL sqlserver 使用sql脚本创建带有包含列的索引的方法分享


摘要:
下文讲述使用sql脚本创建带有包含列的索引的方法分享,如下所示:
实验环境:sql server 2008 R2



索引包含列的用途:

1.提升查询效率
当我们创建一个索引时,如果索引中不包含相关键时,此时当返回数据包含其它非索引包含键时,此时
数据库引擎会二次进行RID查找返回出其它列,这种操作方式无疑加大数据库的查询负担,影响效率,
2.受索引大小限制,需创建包含索引列
由于索引列多少受到数据库引擎的限制,当我们把数据列放入索引包含列中,则不会受到索引大小的限制

索引包含列的举例说明:

   例:
     create table test
  (keyId nvarchar(100),infoA varchar(30),infoB varchar(500))
  /*
 由于nvarchar数据类型占用2个字节,当我们创建一个索引包含三列时,
此时超过索引的最大限制900字节,会出现相应的错误信息,此时我们只能将infoB放入索引
包含列
*/
create  index ix_test_keyIdAndInfoA 
    on test (keyId,infoA) include (infoB)

---当运行以下语句,由于索引中包含所有列,数据库引擎可减少IO查询次数  
  select infoB from test where keyId like 'A%'
   
   go
   truncate table test
   drop       table test