1. 程式人生 > >sql server效能分析--執行sql次數和邏輯次數

sql server效能分析--執行sql次數和邏輯次數

 目前在做一個專案優化時,想通過資料庫層分析sql server系統性能,查了一下網上程式碼,修改了一下標題和DMVs程式碼,以下程式碼可以用來分析系統執行一段時間後,那些語句是系統忙的sql語句。做為參考。

   另類使用:

     一次在分析一個對賬功能時,檢視系統程式碼,看了半天,寫得太不規範,又不寫註釋,看不明白。最後用了下面一個小技巧,和大家一起分享:

 就是在測量功能時,先以下命令清除sql server的快取:

dbcc freeProcCache

在點選某個按鈕,執行完後,在執行下面語句,就可以知道系統執行什麼sql和多少次,其主要慢的語句是那些了。   

SELECT  creation_time  N'語句編譯時間'
        ,last_execution_time  N
'上次執行時間'
        ,total_physical_reads N
'物理讀取總次數'
        ,total_logical_reads

/execution_count N'每次邏輯讀次數'
        ,total_logical_reads  N
'邏輯讀取總次數'
        ,total_logical_writes N
'邏輯寫入總次數'
        , execution_count  N
'執行次數'
        , total_worker_time
/1000 N'所用的CPU總時間ms'
        , total_elapsed_time
/1000  N'總花費時間ms'
        , (total_elapsed_time 
/ execution_count)/1000  N'平均時間ms'
        ,
SUBSTRING
(st.text, (qs.statement_start_offset/2+1,
         ((
CASE statement_end_offset 
          
WHEN-1THENDATALENGTH(st.text)
          
ELSE qs.statement_end_offset END 
            
- qs.statement_start_offset)/2+1) N'執行語句'
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
where
SUBSTRING(st.text, (qs.statement_start_offset/2+1,
         ((
CASE statement_end_offset 
          
WHEN-1THENDATALENGTH(st.text)
          
ELSE qs.statement_end_offset END 
            
- qs.statement_start_offset)/2+1notlike'%fetch%'
ORDERBY  total_elapsed_time / execution_count DESC;

相關推薦

sql server效能分析--執行sql次數邏輯次數

 目前在做一個專案優化時,想通過資料庫層分析sql server系統性能,查了一下網上程式碼,修改了一下標題和DMVs程式碼,以下程式碼可以用來分析系統執行一段時間後,那些語句是系統忙的sql語句。做為參考。    另類使用:      一次在分析一個對賬功能時,檢視系統程

檢視SQL SERVER 資料庫正在執行的語句時長等

SELECT session_Id, --ecid, --sp.dbid,--DB_NAME(sp.dbid) as DB_NM, --nt_username,er.status,wait_type,SUBSTRING (qt.text, er.statement_star

存儲過程被程序第三方客戶端執行很慢,而sql server management studio執行速度正常

一次 com 客戶 正常 gem class .net 顯示 exec 來自:http://blog.csdn.net/pgbiao/article/details/22388945 原因分析:由於存儲過程是預編譯的, 在第一次執行的時候, 會生成執行計劃, 以後執行的

學習筆記sql server數據庫批量查詢刪除內容執行語句

sql server 數據庫 查詢 最近一直在研究博客,其實也就是現在熱門的自媒體,有意思的是,以前網民們都自己寫博客,建立一個自己的小站,現在又去了,都跑去平臺給人家免費打工,還自得其樂,也不知道這是什麽狀況。博客信息:主題:讀書筆記相關的學習主題。網站:使用一個.net的域名作為網址,例如駱駝

Sql Server效能優化輔助指標SET STATISTICS TIME ONSET STATISTICS IO ON

1.前言         對於優化SQL語句或儲存過程,以前主要是用如下語句來判斷具體執行時間,但是SQL環境是複雜多變的,下面語句並不能精準判斷效能是否提高;如果需要精確知道CPU、IO等資訊,就無能為力了。 PRINT convert(varch

sql server 效能調優之 邏輯記憶體消耗最大資源分析1 (自sqlserver服務啟動以後)

原文: sql server 效能調優之 邏輯記憶體消耗最大資源分析1 (自sqlserver服務啟動以後) 一.概述   IO 記憶體是sql server最重要的資源,資料從磁碟載入到記憶體,再從記憶體中快取,輸出到應用端,在sql server 記憶體初探中有介紹。在明白了sqlserver記憶體原

sql server 效能調優之 CPU消耗最大資源分析1 (自sqlserver服務啟動以後)

原文: sql server 效能調優之 CPU消耗最大資源分析1 (自sqlserver服務啟動以後) 一. 概述   上次在介紹效能調優中講到了I/O的開銷檢視及維護,這次介紹CPU的開銷及維護, 在調優方面是可以從多個維度去發現問題如I/O,CPU,  記憶體,鎖等,不管從哪個維度去解決,

理解SQL Server是如何執行查詢的---Joe-T :mvp

執行 -a cnblogs images image sql img rst http http://www.cnblogs.com/Joe-T/ http://rusanu.com/2013/08/01/understanding-how-sql-server-execu

SQL Server統計信息:問題解決方式

二次 就會 數據庫引擎 目的 獲得 差異 product primary tex 在網上看到一篇介紹使用統計信息出現的問題已經解決方式,感覺寫的很全面。在自己看的過程中順便做了翻譯。因為本人英文水平有限,可能中間有一些錯誤。假設有哪裏有問題歡迎大家批評指正。建議英文

SQL Server 取前一天的0點23點59分59秒

nbsp getdate etime sel end bsp detail add sele DECLARE @startDate1 DATE;DECLARE @startDate DATETIME;SET @startDate1=GETDATE();SELECT @sta

SQL server :建立數據庫

使用 char 分享 ase asp 找到 cpn cred 管理工具 2.建立數據庫 2.1 通過SSMS建立數據庫 2.2 通過SQL語句建立數據庫 3.建立表 3.1 通過SSMS建立表 3.2 通過SQL語句建立表 1.前言 配置是win10+SQL Ser

MS Sql Server 中主從庫的配置使用介紹

money mas 篩選 緩存 事務性 添加 com 對象 報表 https://technet.microsoft.com/zh-cn/ff806143.aspx 網站規模到了一定程度之後,該分的也分了,該優化的也做了優化,但是還是不能滿足業務上對性能的要求;這時候我們

深入淺出SQL Server 2008 分區函數分區表

準備 引用 數據類型 發布 回復 不同 con 否則 stc http://www.cnblogs.com/zhijianliutang/archive/2012/10/28/2743722.html 我們數據量比較大的時候,我們需要將大型表拆分為多個較小的表,則

遍歷SQL SERVER中所有存儲過程觸發器

server text 查找 所有 and from obj where serve 如果需要查找某個存儲過程或觸發器中是否含有某段文本(比如:你想知道有哪些存儲過程操作了某個表) 可以這麽寫 select name from sysobjects o, syscomm

[數據庫]Sql server 數據庫的備份還原____還原數據庫提示“介質集有2個介質簇,但只提供了1個。必須提供所有成員”

安裝目錄 data 任務 最好 保存 過程 alt 結構 導入數據 在對數據庫備份與還原的過程中,我遇到一個問題“介質集有2個介質簇,但只提供了1個。必須提供所有成員”,下面詳細的介紹一下遇到問題的經過與問題解決的方法! 一、備份與還原遇到的

DbForge Query Builder for SQL Server入門教程:如何建立編輯查詢

【dbForge Query Builder for SQL Server下載】 本問將說明如何在dbForge Query Builder for SQL Server中建立和編輯SQL查詢。 要建立查詢: 1. 建立伺服器連線。 2. 在“Standard” 工具欄上,單擊“Ne

SQL Server返回插入資料的ID受影響的行數

首先看看資料庫裡面的資料(S_Id為自增長標識列): sql server 中返回上一次插入資料的ID(標識值)有三種方式: 第一種 @@IDENTITY: 1 insert into Student(S_StuNo,S_Name,S_Sex,S_Height) 2 values('013',

SQL Server效能優化案例分享(1)——CPU持續過高——CPU高使用率的常見原因及處理方向

本系列屬於 SQL Server效能優化案例分享 專題     部分內容借用《SQL Server 2012實施與管理實戰指南》P592,如果SQL Server錯誤日誌裡面並沒有17883/17884這類錯誤,但是SQ

SQL Server資料庫開發(5.事務遊標)

一、事務 1.1事務:是有若干個T-SQL指令組成,並且所有的指令作為一個整體提交給資料庫系統,執行時,這這組指令要麼全部完成,要麼全部撤銷。因此,事務是一個不可分割的邏輯單元。 事務必須具有四個屬性:原子性、一致性、隔離性、永續性(也稱為事務的額ACID屬性) 1.2事務的模式(

SQL Server資料庫開發(4.索引檢視)

一、索引 定義:是資料表中資料和相應儲存位置的列表。 作用:可以提高在表或檢視中查詢資料的速度。 1.分類:聚集索引,非聚集索引 聚集索引:指表中資料行的物理儲存順序與索引順序完全相同。 非聚集索引:不該表表中資料行的物理儲存位置,資料與索引分開儲存,通過索引指向的地址與表中的資