Mysql
記錄動態構造的mysql儲存過程的執行時間
我有一個
MySQL
伺服器。
MySQL
伺服器包含龐大的網路數據集合。客戶端 API 將連接到MySQL
伺服器並執行一些動態創建的儲存過程,並在成功執行後即時刪除它。目前沒有可用的跟踪機制。我將無法修改儲存過程,因為它是由客戶端動態創建的
API's
是否有任何機制來跟踪這種動態創建的儲存過程的執行?
您可以在程式碼的開始和結束時擷取 mysqld 的正常執行時間或數據庫伺服器的時間。
也許像這樣
建議 #1
SELECT variable_value INTO @t1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name='uptime'; <Your Stored Procedure Code> SELECT variable_value INTO @t2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name='uptime'; SET @RunningTimeSec = @t2 - @t1; SET @RunningTime = SEC_TO_TIME(@RunningTimeSec); INSERT INTO sometable ... VALUES (...,@RunningTimeSec,...);
建議 #2
SET @t1 = UNIX_TIMESTAMP(NOW()); <Your Stored Procedure Code> SET @t2 = UNIX_TIMESTAMP(NOW()); SET @RunningTimeSec = @t2 - @t1; SET @RunningTime = SEC_TO_TIME(@RunningTimeSec); INSERT INTO sometable ... VALUES (...,@RunningTimeSec,...);
試一試 !!!
使用可用的現成審計外掛之一跟踪伺服器上的活動。McAfee Audit 將是我的推薦,因為您可能只想知道圍繞儲存過程過濾的呼叫。