成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

SQL SERVER 2000系統(tǒng)支持的跟蹤函數(shù)

瀏覽:222日期:2023-10-29 18:00:08

你們大部分人可能已經(jīng)在SQL SERVER中建立自己的用戶定義函數(shù)(UDF),但是你知道么?微軟公司已經(jīng)集成了大量自己的UDFs,特別是在最新發(fā)布的SP3中.在這篇文章中 Baya Pavliashvili和Kevin Kline系統(tǒng)地研究了關(guān)于SQL SERVER跟蹤部分的UDF.你們中的一些人也許想閱讀以前SQL Server Professional的一篇關(guān)于傳統(tǒng)UDFs的文章,比如Andrew Zanevsky's 2000年9月的專欄 ('Granting Wishes with UDF'), Andrew Zanevsky and Anton Jiline's; 2001年10月的文章 ('UDF Performance… or Lack of It'), 或 Jimmy Nilsson's; 2003年7月的文章('Another UDF: Global Constants').

UDFs是SQL Server 2000期待已久的附加功能, UDFs典型的應(yīng)用是DBAs和開發(fā)者用來模塊化代碼和間或用來提高性能.在這篇文章中,我們將從零開始了解SQL SERVER系統(tǒng)提供的UDFs,可以允許DBA進(jìn)行跟蹤管理.

雖然系統(tǒng)提供的用戶定義函數(shù)聽起來有一點(diǎn)矛盾,但微軟還是集成大量的內(nèi)部的UDFs(只讀,系統(tǒng)提供).同時(shí),盡管UDFs這個(gè)特性在SQL SERVER 2000最初發(fā)布是就提供了,不過我們發(fā)現(xiàn)只是在SP3中微軟才因?yàn)樽约旱哪康亩罅渴褂?所有系統(tǒng)提供的UDFs函數(shù)都是以’fn_’開始并且保存在master數(shù)據(jù)庫中.

比較系統(tǒng)提供的和標(biāo)準(zhǔn)的UDF

如果你熟悉UDFs,你也許知道UDF是不能修改固定表的記錄,典型的應(yīng)用是:讀取數(shù)據(jù),修改表變量的數(shù)據(jù),返回?cái)?shù)據(jù).而且UDFs可以運(yùn)行擴(kuò)展存儲(chǔ)過程和系統(tǒng)提供的自定義函數(shù).事實(shí)上有很多的系統(tǒng)提供的自定義函數(shù)只是簡(jiǎn)單的調(diào)用一個(gè)擴(kuò)展存儲(chǔ)過程.[ 擴(kuò)展存儲(chǔ)過程通常是有C++寫的DLL文件,你可以看Paul Storer-Martin's在2002年7月和8月的文章'Playing the ODS'],因此閱讀用T-SQL寫的UDF相同功能的代碼不是更好么? 系統(tǒng)提供的自定義函數(shù)和用戶的自定義函數(shù)在運(yùn)行時(shí)有輕微的差別:典型的自定義函數(shù)(UDFs)可以向這樣調(diào)用:

SELECT column_list

FROM owner_name.UDF_name (@parameter1, … @parameterN)

系統(tǒng)提供的自定義函數(shù)需要在FROM后面加二個(gè)冒號(hào)(::),同時(shí)你不必指定該功能的所有者:

SELECT column_list;

FROM; :: fn_SystemSuppliedUDF

(@parameter1, … @parameterN)

比如: 系統(tǒng)提供的自定義函數(shù)fn_helpcollations()可以返回SQL SERVER 2000支持的所有字符集,我們可以這樣執(zhí)行:

SELECT * FROM :: fn_helpcollations()

用于跟蹤的自定義函數(shù)(UDFs)

一條跟蹤捕獲的T-SQL語句發(fā)給(或運(yùn)行一個(gè)存儲(chǔ)過程在)指定的SQL SERVER的實(shí)列并且保存為一個(gè)*.TRC的文件.SQL SERVER的跟蹤可以通過Profiler工具或運(yùn)行系統(tǒng)的存儲(chǔ)過程sp_trace_create建立并且可以指定許多過慮的標(biāo)準(zhǔn)來限制輸出文件.在這篇文章中,我們主要針對(duì)跟蹤功能的系統(tǒng)提供的自定義函數(shù).

fn_trace_gettablefn_trace_gettable() 需要二個(gè)參數(shù): 初始化的跟蹤文件名(.TRC)和跟蹤文件的個(gè)數(shù).當(dāng)你建立一個(gè)跟蹤,你可以配置SQL SERVER限制跟蹤文件的大小.當(dāng)跟蹤文件到達(dá)指定的大小,SQL SERVER會(huì)字段產(chǎn)生一個(gè)新的”滾動(dòng)的”跟蹤文件. fn_trace_gettable()函數(shù)的第二個(gè)參數(shù)是”滾動(dòng)的”跟蹤文件的個(gè)數(shù),這是在指定第一個(gè)參數(shù)時(shí)開始的.

如果你喜歡將跟蹤的新年保存在數(shù)據(jù)庫中,你可以簡(jiǎn)單地運(yùn)行一個(gè)查詢,通過fn_trace_gettable 將跟蹤文件保存為一個(gè)數(shù)據(jù)表,比如:

SELECT *

INTO dbo.my_trace_table

FROM :: fn_trace_gettable

('c:trace_file.trc', default)

而且,可以非常方便直接查詢,搜索一些特殊含義的字符串.在我們的測(cè)試環(huán)境中,所有的用戶定義的存儲(chǔ)過程以”USP”開始,因此我們可以運(yùn)行一個(gè)查詢,搜索持續(xù)時(shí)間超過3000ms的記錄:

SELECT TextData, duration

FROM ::

fn_trace_gettable('c:trace_file.trc', default)

WHERE TextData LIKE '%usp%'

AND duration > 3000

通過更加復(fù)雜的查詢,我們可以精練SELECT語句來確定哪些查詢一致運(yùn)行地比較慢還是只在高峰期.

fn_trace_getinfo這個(gè)系統(tǒng)提供的自定義函數(shù)可以得到一個(gè)跟蹤的高級(jí)別信息或在一個(gè)SQL SERVER上運(yùn)行的所有正在運(yùn)行的跟蹤.這個(gè)函數(shù)只有一個(gè)參數(shù)—跟蹤的編號(hào)(TRACE ID)

為了限制一個(gè)跟蹤的信息,你必須指定跟蹤標(biāo)志符.你也可以指定DEFAULT或”0”,作為跟蹤標(biāo)志符,這樣可以獲得所有的運(yùn)行的跟蹤信息.SQL SERVER在建立跟蹤時(shí)給每一個(gè)跟蹤分配一個(gè)跟蹤標(biāo)志符,如果你不指定你要查詢的跟蹤標(biāo)志符,簡(jiǎn)單的以參數(shù)”0”運(yùn)行該系統(tǒng)函數(shù),然后你可以限制跟蹤輸出你感興趣的內(nèi)容. fn_trace_getinfo系統(tǒng)函數(shù)的輸出描述如表一:

表 1. f fn_trace_getinfo的輸出.

列名

描述

TraceID

此跟蹤的 ID.可以被用來通過系統(tǒng)存儲(chǔ)過程來管理跟蹤

Property

跟蹤的屬性,由下列整數(shù)表示:

1 – 跟蹤選項(xiàng)(請(qǐng)參見 sp_trace_create 中的 @options)2 – FileName3 – MaxSize4 – StopTime5 – 當(dāng)前跟蹤狀態(tài)

Value

有關(guān)指定跟蹤的屬性的信息。

跟蹤的選項(xiàng)可以通過系統(tǒng)存儲(chǔ)過程sp_trace_create來指定(看表2)

表 2. 跟蹤的選項(xiàng)可以通過系統(tǒng)存儲(chǔ)過程sp_trace_create來指定

選項(xiàng)名

選項(xiàng)值

描述

Trace_produce_rowset

1

跟蹤將產(chǎn)生一個(gè)行集

Trace_file_rollover

2

當(dāng)達(dá)到 max_file_size 時(shí),將關(guān)閉當(dāng)前跟蹤文件并創(chuàng)建新文件.SQL SERVER 會(huì)自動(dòng)為每個(gè)文件增加序列編號(hào)(1,2,3….)

Shutdown_on_error

4

如果不能將跟蹤寫入文件,則 SQL Server 將關(guān)閉。

Trace_produce_blackbox

8

如果這個(gè)選項(xiàng)被選中,SQL SERVER的最后 5 MB 跟蹤信息記錄將由服務(wù)器保存

下面我們看一個(gè)實(shí)列來了解fn_trace_getinfo是如何工作的.設(shè)想我們通過下面的查詢建立一個(gè)跟蹤:

/* declare a variable to hold trace ID */

DECLARE @trace_id INT

/* create the trace */

EXEC sp_trace_create;;;

@traceid = @trace_id; OUTPUT,

@options =; 2; ,

@tracefile =; N'e:trace_file.trc' ,

@maxfilesize = 5,

@stoptime = NULL

/* start the trace we just created.

by default the trace is stopped at creation

*/

EXEC sp_trace_setstatus @trace_id, 1

/* return the trace identifier*/

SELECT 'trace ID is: ' + CAST(@trace_id AS VARCHAR(4))

--Result:

-------------------------

trace ID is: 2

現(xiàn)在我們可以用fn_trace_getinfo 來獲得相應(yīng)跟蹤的信息

SELECT * FROM :: fn_trace_getinfo(2)

查詢的結(jié)果在表 3.

表3. fn_trace_getinfo查詢的結(jié)果.

traceID

Property

Value

2

1

2

2

2

e:trace_file.trc

2

3

5

2

4

NULL

2

5

1

這個(gè)輸出告訴我們,有一個(gè)正在運(yùn)行的跟蹤,自動(dòng)增長(zhǎng)到5MB后會(huì)自動(dòng)產(chǎn)生另外一個(gè)文件.沒有指定跟蹤停止時(shí)間( property = 4 ) ,因此該跟蹤會(huì)運(yùn)行直到SQL SERVER服務(wù)停止或通過系統(tǒng)存儲(chǔ)過程sp_trace_setstatus停止跟蹤。

標(biāo)簽: Sql Server 數(shù)據(jù)庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91精品1区2区| 国产精品久久国产精麻豆99网站| 亚洲欧洲性图库| 69av一区二区三区| 在线观看国产日韩| 欧美这里有精品| 色偷偷久久一区二区三区| 国产亚洲毛片在线| 香蕉av777xxx色综合一区| 国产欧美日韩亚洲| 久久夜色精品| 在线观看亚洲a| 欧美乱妇20p| 日韩欧美中文字幕精品| 日韩美女一区二区三区四区| 欧美一级片免费看| 久久精品欧美一区二区三区麻豆| 久久一区二区视频| 国产精品国产三级国产aⅴ原创 | 九九**精品视频免费播放| 韩国在线一区二区| www.日本不卡| 国产一区在线免费观看| 亚洲国产精品一区制服丝袜 | 亚洲精选国产| 久久夜色精品| 欧美一级专区免费大片| 久久久噜噜噜久噜久久综合| 国产精品国产精品国产专区不片| 亚洲美女免费视频| 美女高潮久久久| 成人白浆超碰人人人人| 亚洲午夜激情在线| 在线视频国内一区二区| 欧美大肚乱孕交hd孕妇| 中文字幕亚洲成人| 日日夜夜一区二区| 成a人片国产精品| 91久久极品少妇xxxxⅹ软件| 亚欧成人精品| 日韩免费观看高清完整版在线观看| 国产精品无遮挡| 视频一区二区欧美| 波多野结衣欧美| 男女精品网站| 精品裸体舞一区二区三区| 亚洲欧美日韩国产手机在线 | 成人丝袜高跟foot| 亚洲精品资源| 日韩久久精品一区| 亚洲丝袜精品丝袜在线| 韩国精品久久久| 亚洲日产国产精品| 欧美一级xxx| 亚洲亚洲人成综合网络| 日韩一区二区三区四区 | av一区二区三区| 久久精品二区三区| 久久九九影视网| 蜜桃视频免费观看一区| 好看不卡的中文字幕| 欧美日本一区二区三区四区| 国产精品看片你懂得| 精品无人区卡一卡二卡三乱码免费卡| 亚洲视频碰碰| 日韩欧美另类在线| 美女一区二区三区在线观看| 欧美国产日本| 日韩欧美资源站| 肉肉av福利一精品导航| 在线 亚洲欧美在线综合一区| 欧美日本韩国一区二区三区视频| 亚洲啪啪综合av一区二区三区| 国产精品一区二区三区99| 在线综合视频| 国产精品无人区| 成人一区二区在线观看| 美日韩免费视频| 亚洲精品欧美专区| 欧美在线三区| 精品少妇一区二区三区在线播放| 日本午夜精品一区二区三区电影 | 91久久精品一区二区别| 国产视频911| 国产xxx精品视频大全| 久久亚洲精品伦理| 一区二区三区加勒比av| 国产精品mm| 久久久www成人免费毛片麻豆 | 久久99精品国产麻豆不卡| 免费日韩精品中文字幕视频在线| 国产精品毛片高清在线完整版 | 久久久久久久久久久一区| 自拍视频在线观看一区二区| 92国产精品观看| 久久综合色综合88| zzijzzij亚洲日本少妇熟睡| 7777精品久久久大香线蕉| 日本一道高清亚洲日美韩| 性色一区二区| 天堂在线一区二区| 欧美中文字幕| 午夜精品福利在线| 一本高清dvd不卡在线观看| 亚洲午夜久久久久久久久电影院| 亚洲欧洲日韩综合二区| 综合色中文字幕| 一区二区三区高清视频在线观看| 亚洲国产精品视频一区| 中文字幕va一区二区三区| 欧美精品二区| 亚洲视频一区在线| 国产精品日韩欧美一区二区三区| 夜夜嗨av一区二区三区四季av| 国产视频一区免费看| 亚洲国产成人av网| 色网站国产精品| 激情国产一区二区| 精品久久五月天| 女生裸体视频一区二区三区| 国产精品理伦片| 性一交一乱一区二区洋洋av| 日韩电影免费一区| 欧美精品一级二级三级| 高清不卡一区二区| 日本一区二区三区国色天香| 亚洲经典一区| 日韩精品免费视频人成| 欧美日韩精品福利| 97se亚洲国产综合自在线不卡 | 国产精品资源网站| 中文字幕乱码亚洲精品一区| 亚洲欧洲一区二区在线观看| 日韩一区精品视频| 欧美一卡2卡三卡4卡5免费| 91啪亚洲精品| 亚洲永久免费视频| 91麻豆精品91久久久久同性| 99久久国产免费看| 亚洲午夜激情网页| 91精品国产日韩91久久久久久| 欧美呦呦网站| 午夜精品福利在线| 26uuu国产一区二区三区| 亚洲美女黄网| 国产美女在线观看一区| 国产精品美女久久久久av爽李琼| 香蕉久久久久久久av网站| 国产精品一级在线| 自拍偷在线精品自拍偷无码专区| 欧美在线观看一区二区| 欧美永久精品| 免费在线观看成人| 国产日韩欧美在线一区| 久久婷婷丁香| 欧美日本一区二区视频在线观看| 日韩中文欧美在线| 日本一区二区三区高清不卡| 一本色道亚洲精品aⅴ| 91麻豆国产香蕉久久精品| 亚洲成人av电影在线| 欧美成人r级一区二区三区| 国产精品久久久一区二区| 粉嫩绯色av一区二区在线观看 | 蜜桃精品视频在线| 中文字幕在线播放不卡一区| 欧美二区三区的天堂| 国产欧美69| 99久久99久久久精品齐齐| 蜜桃久久精品一区二区| 亚洲欧美日韩国产综合| 精品久久人人做人人爰| 五月综合激情日本mⅴ| 国产欧美精品日韩区二区麻豆天美| 欧美在线免费观看视频| 亚洲美女黄色| 欧美91大片| 成人妖精视频yjsp地址| 蜜臀久久99精品久久久画质超高清| 中文字幕亚洲视频| 久久久精品日韩欧美| 欧美一级艳片视频免费观看| 色噜噜久久综合| 国产日韩亚洲| 亚洲精品乱码| 欧美激情第二页| 91在线视频在线| 岛国av在线一区| 国产福利91精品一区| 热久久免费视频| 亚洲高清免费视频| 亚洲欧美激情视频在线观看一区二区三区| 精品国产乱码久久久久久久| 欧美日韩亚洲综合在线 | 国产清纯在线一区二区www| 日韩欧美久久久| 日韩精品一区在线观看| 欧美久久久久中文字幕| 欧美日韩dvd在线观看| 欧美性色aⅴ视频一区日韩精品|