SQL Server 2000优化之进阶篇
一、查询条件与记录数
1、查询时应将需要选择的字段全部列出来,如果没有特殊的需要应当使用Top n指定本次查询应当返回的记录条数。
2、指定查询条件时应遵循如下一些原则:
1>、索引字段的相关条件优先
2>、数字比较条件优先
3>、字段与具体值比较条件优先
4>、字段经运算后作为条件项置为较低的优先级
5>、字符串比较条件置为较低的优先级
二、慎用游标
在存储过程中使用游标将降低查询执行速度与效率,应慎用游标。
三、用表变量代替临时表
表变量占用的资源将在程序执行完成后自动释放,而临时表占用资源只有数据库服务器关闭时才会被释放。
因此,建议使用表变量代替临时表。
四、创建索引
以下是摘自SQL Server 2000帮助文件中的内容:
可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。
可基于数据库表中的单列或多列创建索引。当某些行中的某一列具有相同的值时,多列索引能区分开这些行。
如果经常在同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置准则,那么在这两列上创建多列索引将很有意义。
考虑表中已创建的索引数量。最好不要在一个表中创建大量的索引。检查表中已创建的索引定义。最好避免包含共享列的重叠索引。
五、索引类型
根据数据库的功能,可在数据库设计器中创建三种类型的索引 — 唯一索引、主键索引和聚集索引。
提示: 尽管唯一索引有助于找到信息,但为了获得最佳性能,建议使用主键约束或唯一约束。有关这些约束的更多信息,请参见主键约束和唯一约束。
唯一索引
唯一索引不允许两行具有相同的索引值。
如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏 (lname) 列上创建了唯一索引,则所有职员不能同姓。
主键索引
数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。有关主键的更多信息,请参见定义主键。
聚集索引
在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。
如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度。
六、数据分表
单个表的数据量超过一定数量时,可以考虑分表进行存储,查询时根据需要选择查询某个表。
暂时只想起这么多了,以后有空再慢慢添加吧。