SQL Server 数据库优化剖析

一、SQL Profiler

事件类 Stored Procedures\RPC:Completed TSQL\SQL:BatchCompleted

事件关键字段 EventSequence、EventClass、SPID、DatabaseName、Error、StartTime、TextData、 HostName、ClientProcessID、ApplicationName、 CPU、Reads、Writes、Duration、RowCounts

  1、跟踪慢SQL

    

  2、跟踪SQL执行错误

    

    

   3、调试中找到SQL

    以特殊字符作为筛选条件

    

  4、T-SQL查询trace表

    a、设置抓取的时候段

  b、保持成文件 然后用下面语句查询文件

SELECT  EventSequence,SPID,RequestID,DatabaseId,DatabaseName
    ,LoginName,StartTime,EndTime, TextData,Error
    ,Duration/1000 AS Duration,Reads,CPU,Writes,RowCounts
    ,HostName,ClientProcessID,ApplicationName
INTO bak.dbo.trace
FROM ::fn_trace_gettable(‘C:\trace\DB50 20150623.trc‘, default)

二、表存储结构

1、页 结构

  2 区结构

3 文件存储

 4 、基表

5、堆表

7、聚集索引

8、 普通索引

三、索引优化

1、选择性高

  唯一性高的字段放最前面

2、覆盖索引

  Select、Where、Orderby字段都在索引中 或者 INCLUDE中 这样就会走到索引

3、控制索引数量,窄索引

此图索引作用不大

4、改善SQL语句

  a、SQL尽量简单

  b、 参数化SARG的定义 列名  操作符  <常数 或 变量> Name=’张三’ and 价格>5000

  c、非SRAG name like ‘%张’ Name=’张三’ and 价格>5000 NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE

四、执行计划

--显示统计信息
SET STATISTICS IO ON
SET STATISTICS TIME ON
SELECT * FROM dbo.FreezeUserMoney

开启执行重点看下面几个地方

时间: 2024-12-28 14:04:45

SQL Server 数据库优化剖析的相关文章

SQL Server数据库优化实战(一)

前言:一直想写一些关于SQL Server 数据库优化的文章,不过介于本人能力有限,一直不敢班门弄斧. 如今,想把已经整理好的几章放在博客上和大家分享,与君共勉. 分析问题: 对于优化来说,准确的找到问题点才是重中之重.接下来的几章会重点介绍如何去准确的发现问题,并迅速的提出最有效的解决方案. 获得问题关键点的方式方法会有很多,虽说自己动手丰衣足食,但最直接的就是听客户或者提出者的需求,并详细的询问需求. 例如:某个查询慢,某个操作慢等:当然更高端的就是直接告诉您哪条语句慢(一般来说能确定到语句

转 : SQL Server数据库优化经验总结

优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5.清理删除日志. SQL语句优化的基本原则: 1.使用索引来更快地遍历表. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存放在数据页上.合理的索引设计要建立在对各种查询的 分析和预测上.一般来说:①.有大量重复值

SQL Server数据库优化的10多种方法

巧妙优化sql server数据库的几种方法,在实际操作中导致查询速度慢的原因有很多,其中最为常见有以下的几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷). I/O吞吐量小,形成了瓶颈效应. 没有创建计算列导致查询不优化SQL Server数据库. 内存不足. 网络速度慢. 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量). 锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷). sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 返回了

SQL Server数据库优化实战(三)

前言: 本章主要来介绍一下收缩日志和表的压缩. 收缩日志文件 --利用 exec sp_spaceused 语句查看数据库大小 --右键数据库属性 --查看选项 --将恢复模式设置成简单 --右键数据库-任务-收缩-文件 --文件类型选择日志 --查看收缩后数据库大小 --右键数据库属性-选项 --将恢复模式设置成完整 --注意:此时需要进行一次数据库完整备份 表压缩 --SQL Server 2005及以上版本支持表分区 表分区具体操作详见以下网址: http://blog.csdn.net/

SQL Server数据库优化实战(二)

前言: 本章主要介绍一下SQL Server Profiler(事件探查器),通过探查器,来分析语句运行的效果. --SQL Server Profiler ['pr??fa?l?(r)] 事件探查器 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: -图形化监视SQL Server查询: -在后台收集查询信息: -分析性能: -诊断像死锁之类的问题: -调试T-SQL语句: -模拟重放SQL Server活动: -也可以使用SQL Profiler捕捉在SQL Serve

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用

SQL Server数据库性能优化之SQL语句篇(转载)

SQL Server数据库性能优化之SQL语句篇 原文地址:http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 期项目需要,做了一段时间的SQL Server性能优化,遇到了一些问题,也积累了一些经验,现总结一下,与君共享.SQL Server性能优化涉及到许多方面,如良好的系统和数据库设计,优质的SQL编写,合适的数据表索引设计,甚至各种硬件因素:网络性能.服务器的性能.操作系统的性能,甚至网卡.交换机等.这篇文章主

SQL Server数据库性能优化之SQL语句篇

SQL Server数据库性能优化之SQL语句篇 近期项目需要,做了一段时间的SQL Server性能优化,遇到了一些问题,也积累了一些经验,现总结一下,与君共享.SQL Server性能优化涉及到许多方面,如良好的系统和数据库设计,优质的SQL编写,合适的数据表索引设计,甚至各种硬件因素:网络性能.服务器的性能.操作系统的性能,甚至网卡.交换机等.这篇文章主要讲到如何改善SQL语句,还将有另一篇讨论如何改善索引.如何改善SQL语句的一些原则: 1. 按需索取字段,跟“SELECT *”说拜拜

优化SQL Server数据库查询方法

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优