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

SQL Server 数据库优化剖析

时间:2015-07-22 22:35:14      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

一、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

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

技术分享

SQL Server 数据库优化剖析

标签:

原文地址:http://www.cnblogs.com/echosong/p/4668632.html

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