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

如何監控一個sql

發布時間: 2022-05-04 01:35:57

㈠ 如何實時監控mysql中的SQL語句的執行情況

首先介紹下 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 工具。

㈡ loadrunner如何監控sql資料庫

是要監控SQL Server服務嗎?
首先錄制腳本,設計好場景;

然後在設置場景的頁面中有RUN面板,面板里有Available Graphs 在裡面選擇Datebase Server Resource Graphs,再選擇 SQL Server(雙擊),這時候sqlserver的面板就會出現在可是monitors里,然後選中面板右鍵,選擇Add Measurements->進入後點擊 Add 輸入你資料庫伺服器的信息,進行連接;
連接成功後,需要選擇相應的計數器,關注你們的計數器。

㈢ 如何監控sql server受攻擊

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表,來顯示死鎖信息了

㈣ 關於sql2008,怎麼監控某資料庫表變化情況

在每個表中添加觸發器~~
一旦數據有變化, 觸發器就被觸發~ 觸發器中寫代碼將這個變化寫入到你指定的日誌表中即可。
注意:是多個表的觸發器, 去操作同一個日誌表。

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

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

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

㈥ 如何使用Druid監控sql

首先是過濾器filter的配置,在web.xml中添加如下配置,如圖:

選項配置結束之後,就是我們監控界面的路徑配置了,配置如下圖

Druid已經配置好,接著在瀏覽器中訪問,如圖所以:

輸入訪問地址後,進入Druid監控頁面,如圖所示:

5
此時,在瀏覽器中輸入需要監控系統頁面網址,然後點擊上個畫面中的「SQL監控」即可,此時就可以看到每個SQL語句所用的時間,如下圖所示:

㈦ 如何監控軟體查詢資料庫sql語句

MYSQL中沒有實時監控。 一般是通過查看普通查詢日誌來看執行了哪些SQL語句。當然也可以自己改寫MYSQL的源代碼以實時輸出執行了什麼SQL語句。

㈧ oracle 中怎麼監控sql執行的進度

pl/sql tool session 找到相應的session 一般應用程序是 JDBC Thin Client 然後點下面的sqltext就可以看到執行到那句話了,可以不停刷新看sql變化

㈨ 如何實時監控mysql中的SQL語句的執行情況

首先介紹下 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 工具。

㈩ LoadRunner如何監控SQL資料庫,資料庫是SQL2005的.

一般需要監控以下指標:
1)
SQLServer資源監控中指標緩存點擊率(Cache
Hit
Ratio),該值越高越好。如果持續低於80%,應考慮增加內存。
2)
如果Full
Scans/sec(全表掃描/秒)計數器顯示的值比1或2高,則應分析你的查詢以確定是否確實需要全表掃描,以及SQL查詢是否可以被優化。
3)
Number
of
Deadlocks/sec(死鎖的數量/秒):死鎖對應用程序的可伸縮性非常有害,並且會導致惡劣的用戶體驗。該計數器的值必須為0。
4)
Lock
Requests/sec(鎖請求/秒),通過優化查詢來減少讀取次數,可以減少該計數器的值。