
索引系列
zhvsby
持之以恒,低调做人,认真做事,踏实前进,不要急功近利,万事先稳住,后思考再去做
展开
-
索引与主键
<br />1:<br />Sql server 2005默认建立一个表主键的时候自动为该列设只为聚集索引。但是由于一个表只能有一个聚集索引,这便使得聚集索引非常珍贵,若一个主键列查询不频繁但是还需要建立主键,最好的方式就是只建立主键和非聚集索引而把聚集索引建立到频繁查询的列上去。<br />如下<br />----------------------<br />create table index_T2<br />(cust_Cd varchar(10) primary key nonclustered原创 2010-12-14 12:10:00 · 506 阅读 · 0 评论 -
SQL Server 索引结构及其使用(一)[转]
<br />SQL Server 索引结构及其使用(一)<br />作者:freedk<br />一、深入浅出理解索引结构<br /><br /> 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: <br /> 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要转载 2010-12-14 12:13:00 · 368 阅读 · 0 评论 -
SQL Server 索引结构及其使用(三)
<br />实现小数据量和海量数据的通用分页显示存储过程<br /><br /> 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于转载 2010-12-14 12:15:00 · 332 阅读 · 0 评论 -
SQL Server 索引结构及其使用(四)
<br />聚集索引的重要性和如何选择聚集索引<br /><br /> 在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象: <br /><br />1、分页速度一般维持在1秒和3秒之间。 <br /><br />2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。 <br /><br /> 虽然在超大容量情况下,这个分页的实现过程是很快的,但转载 2010-12-14 12:15:00 · 301 阅读 · 0 评论 -
SQL Server 索引结构及其使用(二)
<br />一、深入浅出理解索引结构<br />改善SQL语句<br /><br /> 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=''zhangsan'' and tID > 10000<br />和执行:select * from table1 where tID > 10000 and name=''zhangsan''<br /> 一些人不知道以上两条转载 2010-12-14 12:14:00 · 302 阅读 · 0 评论 -
思考
<br />以前对数据库也有过一段时间的研究,对数据库的物理存储机制也有所了解,刚看了freedk 写的《SQL Server 索引结构及其使用》受益非浅,我也真的意识到,数据库索引对系统性能的重要性。 <br /> 在我的传统观念中,主键一般是应该设为聚集索引的,但现在有了新的认识,主键主要意义在于“唯一标识记录”关于主键的设计我也不再详述,可以参照我的《数据库主键设计之思考 》,而索引主要是“提高数据库性能”,尤其是“聚集索引”。 <br /> 而现在我会注重数据库索引的建立,最关键的就是聚集索引,“聚转载 2010-12-14 13:06:00 · 369 阅读 · 0 评论 -
有多少行? SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2
<br /><br />T-SQL的COUNT函数可以在查询中返回项目的数量,但是使用这个函数的时候可以指定一个数据列,从而提高性能,原因在于SELECT COUNT(*)在表格中执行了一个全表格的扫描然后返回总数。<br />您可以在函数调用中指定一个数据列,如果只需要计算表格有多少数据行,您可以使用sysindexes表格(不必使用WHERE语句),在sysindexes表格中有一个名为ROWS的数据列,它包含了数据库中所有表格的行数,以下的代码可以返回指定表格的数据行数量:<br />SELECT r原创 2010-12-15 18:46:00 · 3123 阅读 · 0 评论