优化SQL Sever查询语句的几个要点
1、不要在Where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
2、尽量不要在Where条件中使用函数,否则将不能利用索引。
3、在Where条件中使用明确的字段类型值,避免由于隐式转换而不能正确使用索引。
4、避免使用SELECT *,只取需要的明确的字段。
5、对大数据量的查询,尽重避免在SQL语句中使用ORDER BY子句,避免由于使用tempdb进行排序带来额外的开销,替代为使用ADO来实现。
6、避免在SQL Server中盲目地追求一句处理。
7、如果插入的数据量很大,用SELECT into替代INSERT into能带来更好的性能。
8、采用连结操作,避免过多的子查询,产生的CPU和IO开销。
9、只关联需要的表,和满足条件的数据。
10、如果IN子句中需要查询的值过多,考虑使用临时表或者表变量替代。
11、Where 子句中尽量不要使用CASE条件。
。
12、对于连续的数值,捷用between替代IN。
13、对于判断子句,使用TOP 1 1来替代*,同时需要注意判断条件中的索引使用情况。
14、设置#SET NOCOUNT ON#减少返回结果的网络开销。
15、在存储过程的开头,设置#SET XACT_ABORT ON #当Transact-SQL语句产生运行错误时,自动回滚当前事务。
16、在存储过程中,避免交叉执行数据定义语句(DDL)和数据操作语句(DML)操作,尽量把数据定义语句集中放到过程开始部分。
优化SQL Sever查询语句的几个要点的更多相关文章
- SQL Sever查询语句集锦
一. 简单查询简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为“ ...
- SQL逻辑查询语句执行顺序 需要重新整理
一.SQL语句定义顺序 1 2 3 4 5 6 7 8 9 10 SELECT DISTINCT <select_list> FROM <left_table> <joi ...
- 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?
如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何 ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- mysql第四篇--SQL逻辑查询语句执行顺序
mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> < ...
- [转] 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...
- 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
首先需要说明的是这篇文章的内容并不是如何调节SQL Server查询性能的(有关这方面的内容能写一本书),而是如何在SQL Server查询性能的调节中利用SET STATISTICS IO和SET ...
- 【SQL】查询语句中in和exists的区别
in in可以分为三类: 一. 形如select * from t1 where f1 in ( &apos:a &apos:, &apos:b &apos:),应该和 ...
- SQL Server SQL高级查询语句小结(转)
--select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select disti ...
随机推荐
- 假装有题目 & Trie+贪心
题意: 从N个数中选出两个使其异或值最大. SOL: 建立一个01字典树,然后对每一个数在树上贪心即可...Trie一个挺好的运用,复杂度O(n*n的位数) CODE: #include <cs ...
- topcoder SRM 622 DIV2 FibonacciDiv2
关于斐波那契数列,由于数据量比较小, 直接打表了,代码写的比较戳 #include <iostream> #include <vector> #include <algo ...
- [题解+总结]NOIP动态规划大合集
1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...
- vue.js中v-for的使用及索引获取
1.v-for 直接上代码. 示例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- twitter通过oAuth验证获取json数据
protected void Page_Load(object sender, EventArgs e) { var oAuthConsumerKey = "你的key"; var ...
- Dependency Injection
Inversion of Control - Dependency Injection - Dependency Lookup loose coupling/maintainability/ late ...
- 李洪强漫谈iOS开发[C语言-049]-猜数字游戏
- [LintCode] Copy Books 复印书籍
Given an array A of integer with size of n( means n books and number of pages of each book) and k pe ...
- sql2008 r2 重新启动 失败解决办法
一.问题描述: 在计算机中安装sql_server_2008_R2,安装前执行检查时,提示重启计算机失败.重启计算机后,再执行检查仍然提示这个错误. 二.解决方案: 1.在开始->运行中输入re ...
- Vim 常见操作
1.复制所有内容 按照此顺序敲即可:gg(光标定位到文件头) V(选中该行) G(选中该行开始到最后一行结尾) y(复制选中内容) 2.粘贴所有内容 正常模式下,敲p即可,如果遇到粘贴内容不全,需要 ...