WEB开发网
开发学院数据库MSSQL Server SQL Server性能优化综述 阅读

SQL Server性能优化综述

 2008-08-27 09:57:43 来源:WEB开发网   
核心提示: SQL ERVER的语句比较灵活,变量参与的UPDATE语句可以实现一些游标一样的功能,SQL Server性能优化综述(10),比如:在SELECTA,B,C,CAST(NULLASINT)AS序号INTO#TFROM表ORDERBYA,NEWID()产生临时表后,已经按照A字段排序,为

SQL ERVER的语句比较灵活,变量参与的UPDATE语句可以实现一些游标一样的功能,比如:

   SELECTA,B,C,CAST(NULLASINT)AS序号
INTO#T
FROM表
ORDERBYA,NEWID()

产生临时表后,已经按照A字段排序,但是在A相同的情况下是乱序的,这时如果需要更改序号字段为按照A字段分组的记录序号,就只有游标和变量参与的UPDATE语句可以实现了,这个变量参与的UPDATE语句如下:

   DECLARE@AINT
DECLARE@序号INT
UPDATE#TSET
@序号=CASEWHENA=@ATHEN@序号+1ELSE1END,
@A=A,
序号=@序号

D、如果必须使用游标,注意选择游标的类型,如果只是循环取数据,那就应该用只进游标(选项FAST_FORWARD),一般只需要静态游标(选项STATIC)。

E、 注意动态游标的不确定性,动态游标查询的记录集数据如果被修改,会自动刷新游标,这样使得动态游标有了不确定性,因为在多用户环境下,如果其他进程或者本身更改了纪录,就可能刷新游标的记录集。

7、 尽量使用索引

建立索引后,并不是每个查询都会使用索引,在使用索引的情况下,索引的使用效率也会有很大的差别。只要我们在查询语句中没有强制指定索引,索引的选择和使用方法是SQLSERVER的优化器自动作的选择,而它选择的根据是查询语句的条件以及相关表的统计信息,这就要求我们在写SQL语句的时候尽量使得优化器可以使用索引。

为了使得优化器能高效使用索引,写语句的时候应该注意:

A、不要对索引字段进行运算,而要想办法做变换,比如

   SELECTIDFROMTWHERENUM/2=100

应改为:

   SELECTIDFROMTWHERENUM=100*2
SELECTIDFROMTWHERENUM/2=NUM1

如果NUM有索引应改为:

上一页  5 6 7 8 9 10 

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接