WEB开发网
开发学院数据库MSSQL Server 影响SQL Server性能的设计关键 阅读

影响SQL Server性能的设计关键

 2006-04-07 09:15:15 来源:WEB开发网   
核心提示: 在执行一个查询时,用一个where子句来限制必须处理的行数,影响SQL Server性能的设计关键(4),除非完全需要,否则应该避免在一个表中无限制地读并处理所有的行,并避免在where子句用一个多索引的非第一个索引的索引,这时多索引是没有用的,例如下面的例子,select qty fro

在执行一个查询时,用一个where子句来限制必须处理的行数,除非完全需要,否则应该避免在一个表中无限制地读并处理所有的行。

例如下面的例子,

select qty from sales where stor_id=7131

是很有效的比下面这个无限制的查询

select qty from sales

避免给客户的最后数据选择返回大量的结果集。允许SQL Server运行满足它目的的函数限制结果集的大小是更有效的。

这能减少网络I/O并能提高多用户的相关并发时的应用程序性能。因为优化器关注的焦点就是where子句的查询,以利用有用的索引。在表中的每一个索引都可能成为包括在where子句中的侯选索引。为了最好的性能可以遵照下面的用于一个给定列column1的索引。

第一:在表中的column1列上有一个单索引

第二:在表中有多索引,但是column1是第一个索引的列不要在where子句中使用没有column1列索引的查询语句,并避免在where子句用一个多索引的非第一个索引的索引。

这时多索引是没有用的。

For example, given a multicolumn index on the au_lname, au_fname columns of the authors table in

the pubs database,

下面这个query语句利用了au_lname上的索引

SELECT au_id, au_lname, au_fname FROM authors

WHERE au_lname = ’White’

AND au_fname = ’Johnson’

SELECT au_id, au_lname, au_fname FROM authors

WHERE au_lname = ’White’

下面这个查询没有利用索引,因为他使用了多索引的非第一个索引的索引

SELECT au_id, au_lname, au_fname FROM authors

WHERE au_fname = ’Johnson’

上一页  1 2 3 4 

Tags:影响 SQL Server

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