码迷,mamicode.com
首页 > 数据库 > 详细

SQL语句查询优化续集

时间:2018-10-23 23:07:41      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:sql语句   cache   建立   删除   数据处理   proc   text   reads   引擎   

--查询语句的快慢
--开启实际执行计划跟踪
--确保sql 性能问题,需要关闭自身的执行计划和缓存。
DBCC DROPCLEANBUFFERS --dropcleanbuffers 清楚缓冲区
DBCC FREEPROCCACHE --freeproccache 删除计划公诉缓存中的元素
--开启查询IO读取统计,时间统计
SET STATISTICS TIME ON --执行时间 statistics
SET STATISTICS IO ON --IO读取 statistics


--优化引擎重点关注其中的Duration、Writes、Reads、CPU,分析对象是TextData,及执行的语句。其中Duration为毫秒数,1000即为1秒。

以上是对于sql 语句的查询优化过程。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我日常工作的数据处理比较少只有10w以下的数据,那么对于百万级的数据我们怎么优化呢?

查询条件的索引需要建立。条件不要去判断null值,不然会导致全表扫描。

所以在设计数据库表示,最好要用 not null 来填充数据。!= 或者<> 这种操作符都会导致放弃索引而全表扫描。or 也是,我们可以换成union 来代替。

in ,not in  用于嵌套查询,这个比较好理解。 但这会导致全表扫描, 我们可以用exists 提高效率。

对于一些参数语句 我们可以强制使用索引 在  from with(index(索引名))

应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致

 

 

SQL语句查询优化续集

标签:sql语句   cache   建立   删除   数据处理   proc   text   reads   引擎   

原文地址:https://www.cnblogs.com/mineworld/p/9839531.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!