教你在Oracle中啟動指令碼跟蹤儲存過程

2021-08-29 06:30:10 字數 2281 閱讀 4563

一、用指令碼啟動並設定跟蹤的示例

我們可以用指令碼進行跟蹤儲存過程,當然要了解這些儲存過程的具體語法和引數的含義,至於這些語法和引數含義請查詢聯機幫助。下面請看一例項:

/*******************************************/

/* created by: sql profiler                 */

/* date: 2004/06/19 16:50:05       */

/*******************************************/

-- create a queue

declare @rc int

declare @traceid int

declare @maxfilesize bigint

set @maxfilesize = 5

exec @rc = sp_trace_create @traceid output, 0, n'c:\test', @maxfilesize, null

if (@rc != 0) goto error

-- client side file and table cannot be scripted

-- writing to a table is not supported through the sp's

-- set the events

declare @on bit

set @on = 1

exec sp_trace_setevent @traceid, 12, 1, @on

exec sp_trace_setevent @traceid, 12, 12, @on

exec sp_trace_setevent @traceid, 12, 14, @on

-- set the filters

declare @intfilter int

declare @bigintfilter bigint

exec sp_trace_setfilter @traceid, 10, 0, 7, n'sql profiler'

set @intfilter = 100

exec sp_trace_setfilter @traceid, 22, 0, 4, @intfilter

set @intfilter = 1

exec sp_trace_setfilter @traceid, 23, 1, 0, @intfilter

exec sp_trace_setfilter @traceid, 35, 1, 6, n'pubs'

-- set the trace status to start

exec sp_trace_setstatus @traceid, 1

-- display trace id for future references

select traceid=@traceid

goto finish

error:

select errorcode=@rc

finish:

go二、生成跟蹤指令碼的最簡式

事件探查器建立跟蹤, 並設定好各種選項, 完成後執行跟蹤,然後生成指令碼。

事件探查器--檔案--匯出跟蹤定義的檔案--選擇合適的版本。這樣就會生成乙個跟蹤的指令碼, 開啟生成的指令碼, 修改裡面的:exec @rc = sp_trace_create部分, 設定跟蹤結果的儲存檔案(用語句跟蹤的時候, 跟蹤結果只能儲存到檔案)。然後, 在需要跟蹤的時候, 執行這個指令碼來啟動跟蹤。啟動跟蹤後, 跟蹤自動進行, 所以你可以關閉查詢分析器做其他事情去了。

三、已知的問題

1.跟蹤記錄不是實時寫入跟蹤檔案的, 因此, 可能會到你停止跟蹤的時候, 跟蹤資訊才寫入跟蹤檔案

2.檢視當前已經進行的跟蹤可以用(關於結果集的解釋, 請看聯機幫助):

select * from ::fn_trace_getinfo(0)

3. 停止某個跟蹤, 可以在sp_trace_create 語句中設定自動停止時間, 也可以手動停止跟蹤, 用下面的語句:

exec sp_trace_setstatus

@traceid = 1 ,   -- 跟蹤的id

@status = 0     -- 停止, 這樣以後還可能指定此項為來啟用

exec sp_trace_setstatus

@traceid = 1 ,

@status = 2     -- 關閉, 徹底釋放

Oracle 啟動指令碼

大家都注意到用oracle自帶的dbstart指令碼無法在系統啟動時自動啟動oracle資料庫,下面介紹oracle啟動指令碼的編寫和設定!最簡單的指令碼示例 bin sh sqlplus as sysdba oracle instance started.total system global a...

oracle建立服務啟動指令碼

開啟 net start oracleserviceorcl 關閉 net stop oracleserviceorcl 乙個開啟乙個關閉,很直觀。不過我的電腦要右鍵管理員身份執行才能用,於是我去找了大神寫的獲取許可權的版本,可以直接雙擊執行,如下 取得管理員許可權 main echo off cd...

springboot在linux啟動指令碼

建立檔案 touch deploy.sh 1編寫deploy.sh bin bash 這裡可替換為你自己的執行程式,其他 無需更改 使用說明,用來提示輸入引數 usage 檢查程式是否在執行 is exist then return 1 else return 0 fi 啟動方法 start 停止方...