SQL Server 數據庫優化剖析

1、SQL Profiler

事件類 Stored Procedures\RPC:Completed TSQL\SQL:BatchCompleted優化

事件關鍵字段 EventSequence、EventClass、SPID、DatabaseName、Error、StartTime、TextData、 HostName、ClientProcessID、ApplicationName、 CPU、Reads、Writes、Duration、RowCountsspa

  一、跟蹤慢SQL

    

  二、跟蹤SQL執行錯誤

    

    

     三、調試中找到SQL

    以特殊字符做爲篩選條件調試

    

   四、T-SQL查詢trace表code

    a、設置抓取的時候段blog

         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)

2、表存儲結構

    一、頁 結構

   

  2 區結構

    

   3 文件存儲

   

 4 、基表

  

五、堆表

  

七、彙集索引

 

八、 普通索引

  

3、索引優化

一、選擇性高

  惟一性高的字段放最前面事件

二、覆蓋索引

  Select、Where、Orderby字段都在索引中 或者 INCLUDE中 這樣就會走到索引get

三、控制索引數量,窄索引

  

此圖索引做用不大it

 

四、改善SQL語句

  a、SQL儘可能簡單io

  b、 參數化SARG的定義 列名  操做符  <常數 或 變量> Name=’張三’ and 價格>5000  

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

4、執行計劃

--顯示統計信息
SET STATISTICS IO ON 
SET STATISTICS TIME ON 
SELECT * FROM dbo.FreezeUserMoney

開啓執行重點看下面幾個地方

相關文章
相關標籤/搜索