SQL Server查询语句的设计

数据库 SQL Server
查询是SQL Server数据库的核心功能,下面就教您对SQL Server查询语句应该如何设计,希望对您能有所帮助。

SQL Server查询语句如何设计才能让数据库的查询效率更高呢?这是我们经常需要考虑的问题,下面就为您介绍SQL Server查询语句的设计方法,供您参考。

SQL Server优化器通过分析查询语句,自动对查询进行优化并决定最有效的执行方案。优化器分析查询语句来决定那个子句可以被优化,并针对可以被优化查询的子句来选择有用的索引。***优化器比较所有可能的执行方案并选择最有效的一个方案出来。

在执行一个查询时,用一个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’

 


 

 

【编辑推荐】

带您了解SQL Server分页查询语句

SQL Server无法启动的三种解决方法

无法连接SQL Server数据库的解决方法

SQL Server管理相关的注册表技巧

SQL Server服务器角色简介

责任编辑:段燃 来源: 互联网
相关推荐

2010-10-21 10:28:13

SQL Server查

2010-10-21 14:27:35

SQL Server时

2011-09-08 16:30:59

SQL Server查询

2010-10-21 11:44:55

SQL Server分

2010-07-08 13:26:02

SQL Server

2010-11-09 15:30:01

Sql server时

2010-11-11 11:13:54

SQL Server

2010-07-08 13:32:22

SQL Server

2010-11-12 13:08:36

动态sql语句

2010-09-28 14:06:43

Sql Server表

2010-09-06 13:34:37

Sql Server语句

2010-10-21 11:24:02

SQL Server查

2010-09-26 15:23:24

SQL语句

2010-09-07 11:33:04

SQL语句

2010-09-13 17:11:42

sql server

2018-12-25 14:40:04

SQL ServerSQL语句数据库

2010-11-09 16:20:46

SQL Server死

2010-09-28 14:33:13

SQL语句

2017-09-07 16:20:39

SQL查询语句查询优化

2010-09-07 10:35:38

SQL语句
点赞
收藏

51CTO技术栈公众号