❶ 如何跟蹤sql SERVER 正在執行的語句
打開Microsoft SQL Server Management Studio , 在菜單欄有個工具(Tool), 裡面有個事件追蹤(SQL Server Profiler)。
打開sql server profiler, 連接資料庫。彈出Trace Properties(跟蹤屬性), 選擇事件(Events Selection),右下角選擇Show All Columns(選擇所有列), 點擊列過濾(Columns Filters)按鈕。在裡面就有HostName 設置電腦的主機名.
❷ MySQL 如何追蹤sql語句的執行
不知你是不是指這個:
用慣了微軟的ms sql的事件探查器,一直也想在mysql中找到相應的這么一種工具:
修改my.cnf,在mysqld下添加log一行,
[mysqld]
log = /tmp/mysqld.sql
然後,重新啟動mysql,tail -f /tmp/mysqld.sql,就可以實時看到myql伺服器當前正在執行的語句了。
文章出處:http://www.diybl.com/course/6_system/linux/Linuxjs/20071129/89017.html
❸ oracle怎樣開啟sql跟蹤
一.在系統級別上設置sql跟蹤
該方法優點:可以跟蹤所有的oracle的後台進程所執行的sql,包括系統後台進程和用戶進程,並且可以跟蹤所有的操作
缺點:跟蹤所有的後台進程,跟蹤信息量比較大
1.在sqlplus中以sys/ as sysdba身份登陸到資料庫。
2.打開跟蹤,在sqlplus中輸入alter sysetem set events '10046 trace name context forever,level &level';
(其中&level可以輸入1,4,8,12三個級別,不同的級別含有不同級別的信息)
3.然後到ArcMap或ArcCatalog中進行你想跟蹤的操作
4.關閉跟蹤,在sqlplus中輸入alter systemm set events '10046 trace name context off';
5.查找你所跟蹤的session的ID
A 修改時間格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.對使用sde服務的輸入:select sid,logon_time from v$session where username=&username and program='gsrvr.exe';
C.對直連這種方式輸入:select sid,logon_time from v$session where username=&username and program='ArcCatalog';
select sid,logon_time from v$session where username=&username and program='ArcMap';
(其中&username是程序登陸到資料庫的用戶名,如果返回多個結果,在根據登陸的時間確定具體的sid值)
6.執行以下的sql語句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = &SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_mp_dest') d
在輸入sid後,即得到後台的跟蹤文件。
二. 在session級別上設置跟蹤
該方法只適用於跟蹤登陸數據後所進行的一系列的操作,比如跟蹤在ArcCatalog中創建一個Dataset,FeatureClass等的操作
1.在sqlplus中以sys / as sysdba身份登陸到資料庫
2.查找你所要跟蹤的session的sid和serial#
A 修改時間格式:alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
B.對使用sde服務的輸入:select sid,serial#,logon_time from v$session where username=&username and program='gsrvr.exe';
C.對直連這種方式輸入:select sid,serial#,logon_time from v$session where username=&username and program='ArcCatalog';
select sid,serial#,logon_time from v$session where username=&username and program='ArcMap';
(其中&username是程序登陸到資料庫的用戶名,如果返回多個結果,在根據登陸的時間確定具體的sid和serial#的值)
3.開始跟蹤,輸入exec dbms_support.start_trace_in_session(&sid,&serial#,true,true).(如果系統沒有安裝dbms_support包,可以執行$ORACLE_HOME\rdbms\admin\dbmssupp.sql進行安裝)
4.然後到ArcMap或ArcCatalog中進行你想跟蹤的操作
5.結束跟蹤exec dbms_support.stop_trace_in_session(&sid,&serial#);
6.執行以下的sql語句
SELECT d.VALUE
|| '/'
|| LOWER (RTRIM (i.INSTANCE, CHR (0)))
|| '_ora_'
|| p.spid
|| '.trc' trace_file_name
FROM (SELECT p.spid
FROM v$mystat m, v$session s, v$process p
WHERE m.statistic# = 1 AND s.SID = &SID AND p.addr = s.paddr) p,
(SELECT t.INSTANCE
FROM v$thread t, v$parameter v
WHERE v.NAME = 'thread'
AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
(SELECT VALUE
FROM v$parameter
WHERE NAME = 'user_mp_dest') d
在輸入sid後,即得到後台的跟蹤文件。
三. 在Aix系統下跟蹤消耗內存的session的辦法
1.在Aix系統上執行export TERM=vt100
2.執行topas命令,確定最佔cpu資源的process的進程號
3,然後利用select a.sid,b.serial# from v$session a,v$process b where a.paddr=b.addr and b.spid=&spid;
4.確定sid和serial#後利用二方法進行跟蹤。
❹ 如何跟蹤一個WEB應用程序後台執行SQL語句
用以下的sql可以查詢出當前session中正在運行的sql信息:
SELECT S.MODULE, SQL_TEXT, SN.OSUSER, SN.MACHINE, S.EXECUTIONS
FROM SYS.V_$SQL S, SYS.ALL_USERS U, V$SESSION SN
WHERE S.PARSING_USER_ID = U.USER_ID
AND UPPER(U.USERNAME) IN ('USERNAME')
AND (UPPER(S.MODULE) = 'APP.EXE')
AND SN.sql_hash_value = S.hash_value
AND SN.sql_address = S.address
ORDER BY S.LAST_LOAD_TIME
❺ Oracle 資料庫如何跟蹤SQL語句
沒用,只想從後台資料庫看對這個資料庫執行的sql問題補充:unika_ly12 寫道 那你直接查詢 v$sqltext 和 v$session 好了 首先,你要以dba身份登陸資料庫。 第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執行sql語句的那個用戶。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中參數的意義是,sid-會話id,serial#-序列號,這兩個參數可以從v$session中得到。 第三,上面的命令執行成功之後資料庫就自動對該用戶所發出的所有sql語句進行跟蹤,並把結果寫在用戶跟蹤文件里。用戶跟蹤文件存放在資料庫伺服器上,路徑請參考init.ora文件中的ump參數值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統進程編號,這個編號可以從v$process和v$session兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。 首先,你要以dba身份登陸資料庫。 第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執行sql語句的那個用戶。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中參數的意義是,sid-會話id,serial#-序列號,這兩個參數可以從v$session中得到。 第三,上面的命令執行成功之後資料庫就自動對該用戶所發出的所有sql語句進行跟蹤,並把結果寫在用戶跟蹤文件里。用戶跟蹤文件存放在資料庫伺服器上,路徑請參考init.ora文件中的ump參數值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統進程編號,這個編號可以從v$process和v$session兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。
❻ 如何通過跟蹤客戶端程序發出的sql的方法來優化SQL
1. 識別要跟蹤的客戶端程序到資料庫的連接(後面都用session代替),主要找出能唯一識別一個session的sid與serial#。
2. 設定相應的參數,如打開時間開關(可以知道一個sql執行了多長時間),存放跟蹤數據的文件的位置、最大值。
3. 啟動跟蹤功能。
4. 讓系統運行一段時間,以便可以收集到跟蹤數據。
5. 關閉跟蹤功能。
6. 格式化跟蹤數據,得到我們易於理解的跟蹤結果。
http://blog.csdn.net/yu422560654/article/details/44121027
❼ 如何跟蹤mysql執行的sql語句
其實方法很簡單,開啟mysql的日誌log功能,通過查看跟蹤日誌即可。
開啟mysql的日誌log方法:
windows環境下的配置方法:
我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL))
找到my.ini,我的是在「G:\Program Files (x86)\MySQL\MySQL Server 5.0」目錄下,
找到[mysqld],在下面添加:
log=存放日誌的路徑/my.log
❽ SQL2008如何跟蹤某台電腦的執行語句
1、選擇要操作的資料庫。
❾ 怎麼跟蹤應用程序執行的SQL語句
---跟蹤
開始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建--跟蹤...
--設置要跟蹤的伺服器的信息(連接伺服器)--確定
--設置跟蹤的項目...
--然後資料庫的調用情況就會顯示出來
在跟蹤項目設置中,如果不熟悉的話,一般用默認設置
篩選項目有幾個可以注意一下:
1.DatabaseName 同於你要檢測的資料庫名
2.Error 同於錯誤,如果經常出現某個編號的錯誤,則針對此錯誤號
3.Seccess 同於0,失敗,1,成功,如果是排錯,就過濾掉成功的處理