易截截图软件、单文件、免安装、纯绿色、仅160KB

SQLServer 聚集索引优化方案

一、主键与聚集索引并不是一对一匹配的
一般情况下我们都认为,聚集索引和主键是相互匹配的,因为只要你在SQLServer表中定义了一个主键,那么SQLServer会为这个主键自动添加聚集索引.但是,如果你先在表中基于任意一列建立聚集索引,然后再选择另一列作为主键,这时,这个SQLServer将会基于这个主键建立一个唯一非聚集索引.
二、聚集索引会被应用到每个查询中
一个SQLServer表内,最多只能有一个聚集索引,并且表中数据行存储的位置由聚集索引来决定.表中非聚集索引与数据行的映射,是通过聚集索引来定位的.当聚集索引执行插入操作时,数据表中的行要进行移动,同时该表中所有非聚集索引要重新排列,这是非常消耗资源并且影响SQLServer响应速度的.
所以SQLServer表中的聚集索引一定要避免新添加数据时执行插入操作,保证表中新添加的数据是从索引的尾部追加的.这样做可以保证聚集索引相对静态,对非聚集索引的影响也会减小.
创建聚集索引时,要选择那些数据会不断增加的字段,最好的例子就是bbs发帖表中,帖子发布时间,这个字段中的数据是随时间增长的,理论上讲是不会重复的,最适合建立聚集索引.
如果你的聚集索引真的做到了不断增加,那么它的填充因子就应该是100%,这个数值越高,每个8KB大小的索引页记录的行数就越多,进行相同的扫描时IO、内存和CPU资源就用的越少,换句话说就是查询效率更高.
三、聚集索引的数据类型位宽将影响查询效率
聚集索引列的数据类型位宽越小,查询效率越高,并且由于非聚集索引是依靠聚集索引来影射SQLServer表中数据行的,聚集索引的位宽必将影响表中所有非聚集索引的大小.通常适合作为聚集索引的类型包括:
Smallint,int,bigint,datetime和UNIQUEIDENTIFIER.
 
 


相关文档:

用CASE WHEN实现sqlserver数据库的分类汇总功能

/*用CASE WHEN实现sqlserver数据库的分类汇总功能*/
/*例1:统计个数*/
/*表结构
id  cityid  major
1   1         A
2   1         B
3   2        ......

关于SQLServer2005的学习笔记——XML的处理


SQLServer2005
中对
XML
的处理功能显然增强了很多,提供了
query(),value(),exist(),modify(),nodes()
等函数。
关于
xml
,难以理解的不是
SQLServer
提供的函数,而是对
xml
本身的理解,看似很简单的文件格式,处理起来却是非常困难的。本文只是初探一下而已。
详见
SQLServer
联机帮助:
主题
说 ......

SQLServer 最常用的索引字段(通用索引字段)

一、SQLServer 通用索引字段
 
1、Primary Key's 主键
2、Foreign Key's 外键
3、支持SELECT、INSERT、UPDATE和DELETE命令的字段 :
(1)、INNER JOIN
(2)、RIGHT | LEFT OUTER JOIN
(3)、WHERE
(4)、ORDER BY
(5)、GROUP BY
(6)、HAVING
二、创建索引的其他因素(主要因素都因为索引是数据表外部 ......

数据交换学习二:asp.net C# 对 sqlserver表的操作

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号