SQL Server

摘要: ·在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命名视图。这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益
·与基表上的索引相比,对索引视图的维护可能更复杂。只有当视图的结果检索速度的效益超过了修改所需的开销时,才应在视图上创建索引。这样的视图通常包括映射到相对静态的数据上、处理多行以及由许多查询引用的视图。阅读全文
posted @ 2007-01-09 10:06 Kevin Lin 阅读(516) | 评论 (0) 编辑
摘要: char,varchar,text:char,varchar1-8000个英文字符;1-4000个汉字
nchar,nvarchar,ntext(针对Unicode字符);nchar,nvarchar不管中英文字符,都只存储1-4000个字符
tinyint:0-255,而int是-2^31~2^31-1,smallint是-2^15~2^15-1
smalltime:精确到分钟,1900.1.1~2079.6.6;而datetime精确到3%秒(1753.1.1~9999.12.31)
decimal和numeric等同,表示正数?阅读全文
posted @ 2007-01-09 09:01 Kevin Lin 阅读(117) | 评论 (0) 编辑
摘要: 总结:


缺省情况下建立的索引是非群集索引,但有时它并不是最佳的;合理的索引设计要建立在对各种查询的分析和预测上。一般来说:


①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by 、group by发生的列,可考虑建立群集索引;


②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;


③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。
阅读全文
posted @ 2007-01-04 08:30 Kevin Lin 阅读(71) | 评论 (0) 编辑
摘要: ·用的索引越多,从数据库系统中得到数据的速度就越快。
然而,需要注意的是,用的索引越多,向数据库系统中插入新数据所花费的时间就越多。

·对于一个表来说,如果需要进行频繁的执行插入、更新操作,同时还有大量读操作的话,在可能的情况下尝试将这个表分开操作。所有的插入和更新操作可以在一个没有索引的表中操作,然后将其复制到另外一个表中,在这个表里有大量的索引可以优化读数据的能力。

·SQL Server 支持两种类型的索引:clustered 索引和nonclustered索引。Clustered 索引在数据表中按照物理顺序存储数据。因为在表中只有一个物理顺序,所以在每个表中只能有一个clustered索引。在查找某个范围内的数据时,Clustered索引是一种非常有效的索引,因为这些数据在存储的时候已经按照物理顺序排好序了。

Nonclustered索引不会影响到下面的物理存储,但是它是由数据行指针构成的。如果已经存在一个clustered索引,在nonclustered中的索引指针将包含clustered索引的位置参考。 阅读全文
posted @ 2006-12-25 10:08 Kevin Lin 阅读(118) | 评论 (0) 编辑