當前位置:首頁 » 編程語言 » sql性能監控
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql性能監控

發布時間: 2022-05-18 20:01:33

sql SERVER 2008 性能監控 細節咨詢;

以我的電腦為例(win7旗艦版)

運行—perfmon.msc打開性能監視器,新增,下面就有你要的計數器

㈡ 監控資料庫性能的"SQL"語句都有哪些 (1)

監控資料庫性能的SQL語句:1. 監控事例的等待select event,sum(decode(wait_Time,0,0,1)) "Prev", sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" from v$session_Wait group by event order by 4;2. 回滾段的爭用情況select name, waits, gets, waits/gets "Ratio" from v$rollstat a, v$rollname b where a.usn = b.usn;3. 監控表空間的 I/O 比例select df.tablespace_name name,df.file_name "file",f.phyrds pyr, f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbw from v$filestat f, dba_data_files df where f.file# = df.file_id order by df.tablespace_name;4. 監控文件系統的 I/O 比例select substr(a.file#,1,2) "#", substr(a.name,1,30) "Name", a.status, a.bytes, b.phyrds, b.phywrts from v$datafile a, v$filestat b where a.file# = b.file#;5.在某個用戶下找所有的索引select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name from user_ind_columns, user_indexes where user_ind_columns.index_name = user_indexes.index_name and user_ind_columns.table_name = user_indexes.table_name order by user_indexes.table_type, user_indexes.table_name, user_indexes.index_name, column_position;6. 監控 SGA 的命中率select a.value + b.value "logical_reads", c.value "phys_reads", round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO" from v$sysstat a, v$sysstat b, v$sysstat c where a.statistic# = 38 and b.statistic# = 39 and c.statistic# = 40;7. 監控 SGA 中字典緩沖區的命中率select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio", (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" from v$rowcache where gets+getmisses ;0 group by parameter, gets, getmisses;

㈢ 安裝資料庫SQL的時候,在檢查電腦配置環節時出現「性能監視器計數器要求 (錯誤)」,應該怎麼辦

今天在安裝SQL Server 2005時,出現「性能監視器計數器要求」錯誤,因為以前出現過這種錯誤,得到了解決。今天又又出現這種錯誤,但並不是很清楚當時的解決辦法,所以這次把解決方法記錄下來,供自己以後參考,也希望對大家有幫助。

錯誤原因

造成這種錯誤的原因在於Microsoft SQL Server 安裝程序中的安裝配置檢查器 (SCC)在安裝SQL Server前會驗證計數器注冊表項的值。如果 SCC 無法驗證現有的注冊表項,或 SCC 無法運行 lodctr.exe 系統程序,則 SCC 檢查會失敗,致使安裝受阻。

解決辦法(手動設置計數器注冊表項的增量)

ü 解決辦法一

1. 在Windows Server 2003或者Windows Xp中,依次單擊「開始」,「運行」,然後在「打開」中輸入「regedit」單擊「確定」打開注冊表,在Windows 2000中輸入「regedt32」打開注冊表。

2. 定位到注冊表項:

[HKEY_LOCAL_]
"Last Counter"=dword:00000ed4 (5276)
"LastHelp"=dword:00000ed5 (5277)

3. 第2步中的「Last Counter」值 (5276) 必須與以下注冊表項中「Perflib09」的「Counter」項的最大值匹配,並且第2步中的「Last Help」值 (5277) 必須與以下注冊表項中「Perflib09」的「Help」項的最大值匹配。(注意:Perflib中有兩個子項004和009,004代表中文,009代表英文。)

[HKEY_LOCAL_ NTCurrentVersionPerflib09]

「Last Counter」和「Last Help」值是由 Windows 動態分配的;這兩個值會因計算機的不同而不同。

4. 如果完成第3步還無法安裝的話,可修改「Perflib」項中的「Last Counter」和「Last Help」值的值。右鍵單擊「Last Counter」或「Last Help」,單擊「修改」,再單擊「Base = "Decimal"」,在「值數據」中設置值,再單擊「確定」。如有必要,對另一個項重復以上過程,然後關閉注冊表編輯器。

ü 解決辦法二

1. 運行cmd,然後執行

unlodctr w3svc
unlodctr msftpsvc
unlodctr asp
unlodctr inetinfo

以上是將四個計數器都刪除

2. 以下重新安裝計數器

lodctr w3ctrs.ini
lodctr ftpctrs.ini
lodctr axperf.ini
lodctr infoctrs.ini

一般情況下第一種方法就可以解決問題,第一種方法中更改的值只需比當前的值大就可以,沒有限制。第二種方法是備用方法。

㈣ 如何設計一個mysql性能監控的軟體

首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。

pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:

1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;

2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。

而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。

三、使用

接著我們來看下如何使用這個工具。

pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。

觸發條件相關的參數有以下幾個:

  • function:

    ∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;

    ∘也可以設置為 processlist,代表監控 show processlist 的輸出;

  • variable:

    ∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;

  • threshold:

    ∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;

    ∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;

  • cycles:

    ∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;

  • 連接參數:host、password、port、socket。

  • 其他一些重要參數:

  • iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。

  • run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。

  • sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。

  • interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。

  • dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。

  • retention-time :監控數據保留時長,默認 30 天。

  • daemonize:以後台服務運行,默認不開啟。

  • log:後台運行日誌,默認為 /var/log/pt-stalk.log。

  • collect:觸發發生時收集診斷數據,默認開啟。

    ∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。

    ∘collect-strace:收集跟蹤數據,需要 strace 工具。

    ∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。

㈤ 如何監視和查看sql server的性能

監視和查看sql server的性能步驟:
1.打開sql server studio management,打開"工具"-"sql server profiler";

2.點擊連接;

3.點擊運行;

4.可以看到捕捉到的一些訪問資料庫的事件,其中有讀寫,點用cpu,持續時間等信息可以參考;

4.點擊某個事件,可以查看具體執行了sql腳本等,進一步分析相關邏輯。

㈥ 如何監控sqlserver 性能 死鎖

具體步驟如下:

1.首先使用下面的命令,將有關的跟蹤標志啟用。

SQL codeDBCC TRACEON (3605,1204,1222,-1)

說明:
3605
將DBCC的結果輸出到錯誤日誌。
1204 返回參與死鎖的鎖的資源和類型,以及受影響的當前命令。
1222
返回參與死鎖的鎖的資源和類型,以及使用了不符合任何 XSD 架構的 XML 格式的受影響的當前命令(比1204更進一步,SQL
2005及以上可用)。
-1 以全局方式打開指定的跟蹤標記。

以上跟蹤標志作用域都是全局,即在SQL
Server運行過程中,會一直發揮作用,直到SQL Server重啟。

如 果要確保SQL Server在重啟後自動開啟這些標志,可以在SQL
Server服務啟動選項中,使用 /T 啟動選項指定跟蹤標志在啟動期
間設置為開。(位於SQL Server配置管理器->SQL
Server服務->SQL Server->屬性->高級->啟動參數)

在運行上面的語句後,當SQL
Server中發生死鎖時,已經可以在錯誤日誌中看到了,但還不夠直觀(和其它信息混在一起)。(SSMS
-> SQL Server實例 ->
管理 -> SQL Server日誌)

2.建表,存放死鎖記錄

SQL codeUSE [Cole] --Cole是我的示例資料庫,你可以根據實際情況修改。 GO
CREATE TABLE DeadLockLog ( id int IDENTITY (1, 1) NOT NULL, LogDate DATETIME, ProcessInfo VARCHAR(10), ErrorText VARCHAR(MAX) )
GO

3.建立JOB

新建一個JOB(假設名稱為DeadLockJob),在"步驟"中新建一步驟,隨便寫一個步驟名稱,資料庫為"Cole",在"命令"欄中輸入以下語句:

SQL code--新建臨時表 IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null
DROP TABLE #ErrorLog
CREATE TABLE #ErrorLog (Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX)) --將當前日誌記錄插入臨時表
INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog --將死鎖信息插入用戶表
insert DeadLockLog
select a, b, c from #ErrorLog where id >= (select MAX(id) from #ErrorLog WHERE c Like '%Deadlock encountered%')
DROP TABLE #ErrorLog

4.新建警報

在"新建警報"窗體的"常規"選項卡中,進行以下設置:

名稱:可根據實際自行命名,這里我用DeadLockAlert
類型:選擇"SQL
Server性能條件警報"
對象:SQLServer:Locks
計數器:Number of
Deadlocks/sec
實例:_Total
計數器滿足以下條件時觸發警報:高於
值:0
在"響應"選項卡中,選中"執行作業",並選擇步驟3中我們新建的作業(即DeadlockJob)

到這里為止,我們已經完成了全部步驟,以後,你就可以隨時查詢DeadLockLog表,來顯示死鎖信息了。

㈦ 怎樣最好的實現SQLServer的性能監控

查看sql緩存中 sql的運行時間,然後對運行時間長的sql,進行優化

㈧ 安裝SQL Server 2005時,在檢測時出現「性能監視器計數器要求

安裝SQL
Server
2005時,在檢測時出現「性能監視器計數器要求(錯誤)」

打開注冊表,找到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\Last
Counter
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\Last
Help
這兩個的值要與同級目錄下009或004文件夾下的Counter和Help最大值對應保持一至即可。
注意:中文版找004,英文版找009
例:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\Last
Counter
值:12072
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\004\Counter
值:10000
將HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\Last
Counter的值替換成
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Perflib\004\Counter中的值即可。

㈨ sql server伺服器性能怎麼監控

請參閱
SQL Server性能監控
http://wenku..com/link?url=Kci4zSX-QNbkwSyf2scT-KKomvRSR334TDC6wgmMjdVC8G5__R2M7mqibm

㈩ 如何監控某個資料庫用戶的SQL執行效率

SQL SERVER PROFILER Trace然後FILTER SELECT語句。
如果是2008或以上的話可以考慮用Database audit.

但是使用這些功能對資料庫性能都會產生影響,要注意。