SQL Server 2000优化之进阶篇

SQL Server 2000优化之进阶篇

一、查询条件与记录数

1、查询时应将需要选择的字段全部列出来,如果没有特殊的需要应当使用Top n指定本次查询应当返回的记录条数。

2、指定查询条件时应遵循如下一些原则:

1>、索引字段的相关条件优先

2>、数字比较条件优先

3>、字段与具体值比较条件优先

4>、字段经运算后作为条件项置为较低的优先级

5>、字符串比较条件置为较低的优先级

 

二、慎用游标

在存储过程中使用游标将降低查询执行速度与效率,应慎用游标。

 

三、用表变量代替临时表

表变量占用的资源将在程序执行完成后自动释放,而临时表占用资源只有数据库服务器关闭时才会被释放。

因此,建议使用表变量代替临时表。

 

四、创建索引

以下是摘自SQL Server 2000帮助文件中的内容:

可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。

 

索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。

 

可基于数据库表中的单列或多列创建索引。当某些行中的某一列具有相同的值时,多列索引能区分开这些行。

如果经常在同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置准则,那么在这两列上创建多列索引将很有意义。

 

考虑表中已创建的索引数量。最好不要在一个表中创建大量的索引。检查表中已创建的索引定义。最好避免包含共享列的重叠索引。

 

五、索引类型
根据数据库的功能,可在数据库设计器中创建三种类型的索引 — 唯一索引、主键索引和聚集索引。
提示: 尽管唯一索引有助于找到信息,但为了获得最佳性能,建议使用主键约束或唯一约束。有关这些约束的更多信息,请参见主键约束和唯一约束。

 

唯一索引
唯一索引不允许两行具有相同的索引值。
如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏 (lname) 列上创建了唯一索引,则所有职员不能同姓。

 

主键索引
数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。有关主键的更多信息,请参见定义主键。

 

聚集索引
在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。
如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度。

 

六、数据分表

单个表的数据量超过一定数量时,可以考虑分表进行存储,查询时根据需要选择查询某个表。

 

暂时只想起这么多了,以后有空再慢慢添加吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值