亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

了解SQL Server 2005五個(gè)有用的動(dòng)態(tài)管理對象

添加時(shí)間:2012-12-4 17:47:15  添加: 思海網(wǎng)絡(luò) 

  SQL Server 2005的新功能為動(dòng)態(tài)管理對象,它們是在指定時(shí)間返回某個(gè)數(shù)據(jù)庫實(shí)例的特殊狀態(tài)信息的數(shù)據(jù)庫視圖或函數(shù)。這些對象允許數(shù)據(jù)庫管理員或開發(fā)者對數(shù)據(jù)庫服務(wù)器進(jìn)行高效監(jiān)控。動(dòng)態(tài)管理對象取代了SQL Server以前版本中的許多系統(tǒng)表格,但也為數(shù)據(jù)庫管理員提供更多觀測手段。

  服務(wù)器上需要監(jiān)控的內(nèi)容,幾乎都有對應(yīng)的動(dòng)態(tài)管理對象。既然有這么多動(dòng)態(tài)管理對象,在這篇文章中逐一進(jìn)行討論是不實(shí)際的。例如,共有12類動(dòng)態(tài)管理對象,但這里我主要討論我認(rèn)為相當(dāng)重要的五個(gè)對象,它們分別來自與SQL Server操作系統(tǒng)、目錄和執(zhí)行有關(guān)的類中。

  這些對象被分為兩類:數(shù)據(jù)庫級別和服務(wù)器級別。SQL Server 2005的安全構(gòu)架有些不同,所以你必須采取一些措施保證你能夠使用本文討論的視圖和函數(shù)。你必須保證使用這些例子的用戶能夠查看對象的SERVER STATE和DATABASE STATE?梢詰(yīng)用GRANT語句來完成這一點(diǎn)。

  在我開始介紹動(dòng)態(tài)管理對象之前,你應(yīng)該建立一個(gè)可用在所有例子里面的表格。列表A是建立這個(gè)表格的代碼。

  列表A

IF OBJECT_ID('DMVTest') IS NOT NULL
DROP TABLE DMVTest
GO
CREATE TABLE DMVTest
(
C1 INT IDENTITY PRIMARY KEY CLUSTERED,
C2 INT,
C3 CHAR(5)
)

  SQL Server操作系統(tǒng)相關(guān)動(dòng)態(tài)管理對象

  sys.dm_os_performance_counters:這個(gè)視圖返回的信息列舉與SQL Server直接相關(guān)的性能統(tǒng)計(jì)。返回的信息代表通過Windows性能監(jiān)控器顯示的外部性能計(jì)數(shù)器。在SQL Server 2000中,這些數(shù)據(jù)以一個(gè)叫做sysperfinfo的系統(tǒng)表格來表示,SQL Server 2005中也有這個(gè)表格,但僅用于向后兼容。將來的版本可能會(huì)刪除這個(gè)表格。

  要了解如何應(yīng)用這個(gè)視圖,而不是運(yùn)行Windows性能監(jiān)控器來獲取系統(tǒng)信息,請運(yùn)行列表B中的查詢代碼。這個(gè)查詢將返回服務(wù)器當(dāng)前時(shí)刻的緩存命中率(Buffer Cache Hit Ratio)。緩存命中率指在內(nèi)存中所發(fā)現(xiàn)的SQL Server請求頁面的百分比。如果服務(wù)器運(yùn)轉(zhuǎn)正常,這個(gè)值一般在90%以上。如果這個(gè)值低于90%,則意味著服務(wù)器將會(huì)去硬盤那里恢復(fù)數(shù)據(jù)頁面,這可能是服務(wù)器需要更多內(nèi)存的信號。

  列表B

SELECT
(CAST(SUM(CASE LTRIM(RTRIM(counter_name))
WHEN 'Buffer cache hit ratio'
THEN CAST(cntr_value AS INTEGER) ELSE NULL END) AS FLOAT) /
CAST(SUM(CASE LTRIM(RTRIM(counter_name))
WHEN 'Buffer cache hit ratio base' THEN CAST(cntr_value AS INTEGER)
ELSE NULL END) AS FLOAT)) * 100
AS BufferCacheHitRatio
FROM
sys.dm_os_performance_counters
WHERE
LTRIM(RTRIM([object_name])) LIKE '%:Buffer Manager' AND
[counter_name] LIKE 'Buffer Cache Hit Ratio%'

  如果你為了同樣的目的,準(zhǔn)備運(yùn)行上面的查詢,并將得到的結(jié)果與運(yùn)行Windows性能監(jiān)控器顯示的結(jié)果進(jìn)行比較(SQL Server:緩沖器管理器緩存命中率),你會(huì)發(fā)現(xiàn)這些數(shù)據(jù)幾乎是一樣的。稍稍研究一下,就可以根據(jù)這個(gè)表格開發(fā)出你自己的腳本庫,而不必總是運(yùn)行Windows性能監(jiān)控器。

  Caveat:這個(gè)視圖僅限于SQL Server相關(guān)的計(jì)數(shù)器使用。如果你希望獲得SQL Server之外的數(shù)據(jù),你還是要使用Windows性能監(jiān)控器。

  目錄相關(guān)動(dòng)態(tài)管理視圖和函數(shù)

  sys.dm_db_index_physical_stats:這個(gè)動(dòng)態(tài)管理函數(shù)為數(shù)據(jù)表格和視圖返回相關(guān)數(shù)據(jù)及目錄信息。

 查看列表C。這個(gè)函數(shù)接受5個(gè)參數(shù):數(shù)據(jù)庫的ID、所討論的表格或視圖的ID、表格或視圖上的一個(gè)特定目錄的ID(被我忽略)、分區(qū)號(也被我忽略)和一個(gè)模式,我將它指定為“DETAILED”。將這些參數(shù)提交給這個(gè)函數(shù)會(huì)允許你查看DMVTest表格中的所有目錄細(xì)節(jié)。

  在前面定義的表格中運(yùn)行列表C中的查詢,你會(huì)發(fā)現(xiàn)表格中既沒有頁面也沒有記錄。在DMVTest中增加一條記錄,再運(yùn)行查詢,就會(huì)發(fā)現(xiàn)表格中增加了一個(gè)頁面。

  INSERT INTO DMVTest(C2, C3)

  VALUES(1,1)

  列表C

SELECT
OBJECT_NAME([object_id]),*
FROM
sys.dm_db_index_physical_stats (DB_ID(),
OBJECT_ID('DMVTest'),NULL,NULL, 'DETAILED')

  這個(gè)函數(shù)返回的另一個(gè)特別有趣的域?yàn)閍vg_page_space_used_in_percent域,它說明數(shù)據(jù)頁面有多大。從查詢中發(fā)現(xiàn)數(shù)據(jù)頁面約為0.25%。你可以應(yīng)用這個(gè)數(shù)據(jù)來開發(fā)程序,查看數(shù)據(jù)庫表格,并根據(jù)程序中設(shè)定的標(biāo)準(zhǔn),重新為它們編寫目錄。

  執(zhí)行相關(guān)的動(dòng)態(tài)管理視圖和函數(shù)

  sys.dm_exec_requests:這個(gè)視圖顯示發(fā)生在SQL Server實(shí)例中的每個(gè)請求的有關(guān)信息。當(dāng)你研究服務(wù)器阻塞時(shí),由此視圖提供的信息特別有用。讀、寫、會(huì)話設(shè)置和blocking_session_id是這個(gè)視圖返回的一些有用數(shù)據(jù)。blocking_session_id欄指出系統(tǒng)上阻塞數(shù)據(jù)庫請求的會(huì)話。稍后,我將舉出一個(gè)例子,說明如何確定用戶運(yùn)行的阻塞請求的語句。

  sys.dm_exec_sessions:SQL Server上每個(gè)得到驗(yàn)證的會(huì)話由它返回一行。在你希望找出連接到數(shù)據(jù)庫服務(wù)器的所有用戶時(shí),可用到這個(gè)視圖。它返回session_id、連接通過它建立會(huì)話執(zhí)行的讀和寫的程序、以及其它一些會(huì)話設(shè)置。這個(gè)視圖還包含一個(gè)叫做is_user_process的BIT域,在查詢這個(gè)表格時(shí)你可能會(huì)用到它。數(shù)值1表示會(huì)話為用戶會(huì)話而非系統(tǒng)定義的會(huì)話。

  sys.dm_exec_sql_text:這是一個(gè)根據(jù)sql操作返回SQL Server語句的動(dòng)態(tài)管理函數(shù)。對某些動(dòng)態(tài)管理函數(shù)而言,SQL Server 2005將正在執(zhí)行的sql語句以散列值存儲。這個(gè)散列值可由sys.dm_exec_sql_text動(dòng)態(tài)管理函數(shù)解析。但是,任何時(shí)候你希望將一個(gè)函數(shù)與另一個(gè)對象連接起來,并從表格或視圖中提交一個(gè)域值時(shí),就會(huì)需要用到新的APPLY運(yùn)算符。SQL Server 2005以前的版本并不具備這一功能。(欲了解SQL Server 2005中APPLY運(yùn)算符的詳細(xì)信息,請參閱這篇文章。)

  現(xiàn)在我們討論一下如何應(yīng)用這三個(gè)動(dòng)態(tài)管理函數(shù)。列表D中的查詢列舉出數(shù)據(jù)庫中所有當(dāng)前用戶請求執(zhí)行的會(huì)話、阻塞會(huì)話、程序、主機(jī)和SQL Server語句。

  列表D

SELECT
r.session_id,
r.blocking_session_id,
s.program_name,
s.host_name,
t.text
FROM
sys.dm_exec_requests r
INNER JOIN sys.dm_exec_sessions s ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE
s.is_user_process = 1

  注意我正在使用dm_exec_sql_text函數(shù),并從sys.dm_exec_requests視圖中提交sql_handle域。由sys.dm_exec_requests和sys.dm_exec_sessions視圖返回的每一行,都將調(diào)用sys.dm_exec_sql_text函數(shù)。

  測試

  對它們進(jìn)行測試是學(xué)習(xí)這些新型動(dòng)態(tài)管理對象的最佳方法。SQL Server在線書籍提供了使用這些對象的一些資料,但動(dòng)手使用要比閱讀學(xué)到更多內(nèi)容。投入一點(diǎn)努力,你就會(huì)發(fā)現(xiàn)許多應(yīng)用對象的新方法,不僅包括這個(gè)例子中列出的對象,還包括SQL Server 2005中的動(dòng)態(tài)管理對象。

關(guān)鍵字:SQL Server 2005、數(shù)據(jù)庫、服務(wù)器

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項(xiàng)備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站