賽迪網 > IT技術 數據庫 > 精彩更新
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

可以幫助DBA監視和跟蹤IDS伺服器的三個表

發佈時間:2008.07.24 09:10     來源:賽迪網    作者:茶晶

【賽迪網-IT技術報道】概述

Sysmaster 數據庫是 IDS 系統中的一個偽數據庫,它提供關於 IDS 伺服器的共用記憶體結構的資訊,對於監視伺服器的狀態和性能非常有幫助

我將通過一些示例解釋如何使用 IDS 11(代碼號“Cheetah”)中新的 Sysmaster 特性,並討論以下七個 Sysmaster 表:

◆Sysnetclienttype、Sysnetglobal 和 Sysnetworkio,顯示網路狀態

◆Syssqltrace、Syssqltrace_info 和 Syssqltrace_iter,顯示 SQL 配置文件和跟蹤資訊

◆Systhreads,記錄線程和它們的等待統計數據

監視網路活動

有三個新表可以幫助 DBA 監視和跟蹤 IDS 伺服器的用戶和客戶機網路活動。這些表是:

◆Sysnetclienttype,顯示每種客戶機類型的網路活動概況

◆Sysnetglobal,提供系統網路的概況

◆Sysnetworkio,提供系統網路 I/O 的概況

Sysnetclienttype 表顯示可以連接到伺服器的所有客戶機類型,以及在客戶機和伺服器之間生成的網路流量。總會顯示的一個客戶機類型是 sqlexec,這個類型分配給執行查詢、插入、刪除和更新的用戶。隨著時間的推移,會發生更多活動,所以 nc_reads 和 nc_writes 列會反映不斷增加的網路讀寫數量。另一個客戶機類型是 ontape。對於這個類型,當執行備份時,nc_reads 和 nc_writes 列顯示的活動數量會增加。通過使用 Sysnetclienttype 表,可以按照連接伺服器的客戶機類型查看總體網路活動量。

Sysnetglobal 表包含一個記錄,它顯示全局設置和網路讀寫的總數。Sysnetworkio 表按照會話顯示網路 I/O —— 因此,可以在這裡搜尋消耗網路資源最多的會話。net_open_time、net_last_read 和 net_last_write 列包含最近一次網路活動的日期和時間,這些數據採用 Unix 時間格式,所以需要用 dbinfo 函數把它們轉換為人可閱讀的格式。下面的 SQL 語句按照會話顯示最近一次網路活動的日期和時間:

清單1.顯示最近一次網路活動的日期和時間

select

sid,

dbinfo( ‘utc_to_datetime’ , net_open_time ),

-- Date/time session started net connection

dbinfo( ‘utc_to_datetime’ , net_last_read ),

-- Date/time session performed last net read

dbinfo( ‘utc_to_datetime’ , net_last_write )

-- Date/time session performed last net

write from Sysnetworkio;

捕捉和跟蹤SQL語句

最讓興奮的是,有三個新的 Sysmaster 表可以用來在運行 SQL 語句之後捕捉和跟蹤 SQL 語句。要想使用這些表,必須在 ONCONFIG 文件中用 SQLTRACE 參數啟用 SQL 跟蹤特性,或者執行一個新的 dba 函數任務。這三個表是:

◆Syssqltrace,顯示單一 SQL 語句的詳細資訊

◆Syssqltrace_info,包含 SQL 配置文件跟蹤系統的資訊

◆Syssqltrace_iter,列出 SQL 語句迭代器

這些都不是物理表,而是記憶體中的數據,所以在啟用跟蹤時,需要配置存儲跟蹤資訊所用的記憶體量。當填滿這個記憶體空間之後,就丟棄最舊的數據並替換為當前數據。在 ONCONFIG 文件中或通過新的 dba 函數任務啟用跟蹤需要四個參數:

◆Level 是要捕捉的數據的詳細程度;這個參數可以設置為 off、low、med 或 high。默認值是 off,所以如果不啟用跟蹤,就不會捕捉資訊。

◆Ntraces 是跟蹤並存儲在記憶體中的 SQL 語句的最大數量。達到這個數量之後,就會重用記憶體空間。最小數值是 500,最大數值取決於您希望使用的記憶體量。如果設置為 1000,那麼第 1001 個 SQL 語句會重用第一個 SQL 語句的存儲區域。

◆Size 是每個跟蹤緩衝區的最大大小,以 KB 為單位,值的範圍是從 1 到 100。

◆Mode 指定跟蹤是針對所有用戶(global),還是針對一個特定用戶。

ONCONFIG 文件中的設置像下面這樣:

SQLTRACE Level=low,Ntraces=1000,Size=2k,Mode=global

還可以使用新的 dba 函數臨時啟用這個特性,這在調試時非常方便。可以在 ONCONFIG 文件中禁用跟蹤(換句話說,並不永久地啟用它),只在需要時啟用它。這個函數只能在新的 sysadmin 數據庫上使用。下面的示例使用這個新函數啟用跟蹤。

清單2.使用新的 dba 函數臨時啟用跟蹤

database sysadmin;

execute function task (“set sql tracing on”,1000, “2k”, “high”, “global” );

Once turned on, the next 1,000 (or whatever number is specified in Ntraces)

表1. Syssqltrace 列

sql_id  惟一的 SQL 執行 ID  
sql_address  語句在代碼塊中的地址  
sql_sid  運行 SQL 語句的用戶的數據庫會話 ID  
sql_uid  運行 SQL 語句的用戶的用戶 ID  
sql_stmttype  語句類型  
sql_stmtname  顯示為單詞形式的語句類型  
sql_finishtime  完成這個語句的時間(Unix 格式)  
sql_begintxtime  開始執行這個語句的時間  
sql_runtime  語句的執行時間  
sql_pgreads  這個 SQL 語句的磁片讀數量  
sql_bfreads  這個 SQL 語句的緩衝區讀數量  
sql_rdcache  從緩衝區池讀取頁面的次數的百分比  
sql_bfidxreads  索引頁面緩衝區讀數量  
sql_pgwrites  寫到磁片的頁面數量  
sql_bfwrites  修改並返回給緩衝區池的頁面數量  
sql_wrcache  向緩衝區池寫頁面的次數的百分比  
sql_lockreq  這個 SQL 語句所需的鎖的總數  
sql_lockwaits  這個 SQL 語句等待鎖的次數  
sql_lockwttime  在執行這個 SQL 語句期間系統等待鎖的時間  
sql_logspace  這個 SQL 語句在邏輯日誌中使用的空間量  
sql_sorttotal  為這個語句運行的排序數量  
sql_sortdisk  在磁片上運行的排序數量  
sql_sortmem  在記憶體中運行的排序數量  
sql_executions  這個 SQL 語句運行的次數  
sql_totaltime  運行這個語句花費的時間總量  
sql_avgtime  運行這個語句花費的時間平均量  
sql_maxtime  執行這個 SQL 語句花費的最大時間量  
sql_numiowaits  不得不等待 I/O 的次數  
sql_avgiowaits  這個 SQL 語句等待 I/O 的時間平均量  
sql_totaliowaits  這個 SQL 語句等待 I /O 的時間總量  
sql_rowspersec  每秒產生的平均行數  
sql_estcost  與這個 SQL 語句相關聯的開銷  
sql_estrows  這個 SQL 語句返回的行數的估計值  
sql_actualrows  這個 SQL 語句返回的行數  
sql_sqlerror  SQL 錯誤號  
sql_isamerror  RSAM/ISAM 錯誤號  
sql_isollevel  這個 SQL 語句的隔離級別  
sql_sqlmemory  執行這個 SQL 語句所需的字節數  
sql_numiterators  這個語句使用的迭代器數量  
sql_database  數據庫名  
sql_numtables  執行這個 SQL 語句所用的表數量  
sql_tablelist  這個 SQL 語句中直接引用的表名的列表  
sql_statement  運行的 SQL 語句

啟用跟蹤之後,sqltrace 表會捕捉後面 1000 個(或者 Ntraces 中指定的數量)SQL 語句。onstat -g 命令將讀取這個表,顯示配置設置以及跟蹤所捕捉到的所有 SQL 語句。表 1 顯示 Syssqltrace 表的列(見表 1 所示)。

可以通過這個表了解 IDS 伺服器上已經執行的 SQL 語句的詳細資訊。Syssqltrace 表包含 SQL 語句、執行 SQL 所用的資源、運行 SQL 花費的時間、磁片/頁面/緩衝區讀和寫的數量、使用的鎖數量、排序數量和使用的記憶體量。另外,它還包含 IDS 優化器估計的運行這個 SQL 所要花費的時間。這個表非常有意思的一個好處是,可以對比 IDS 優化器估計的返回行數和實際的返回行數(sql_estrows 和 sql_actualrows)。如果這兩個數值差異很大,就說明 IDS 優化器並不掌握關於表中行和索引數量的正確的統計數據。這意味著需要運行 update statistics,從而向優化器提供正確的數據。

在進行 IDS 調優時資訊是關鍵因素

在進行監視和調優時,獲得關於 IDS 伺服器及其性能的豐富資訊的能力是一個關鍵因素。IDS 11 中新增的這些 Sysmaster 表可以提供有用的資訊。請在 dbaccess 或 Server Studio 中對這些新表運行一些選擇語句,體會它們所提供的資訊。(責任編輯:盧兆林)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· 一位DBA總結的數據庫反規範設計常用方法 (07-14) · DBA:在生產環境中創建監控表DML的觸發器 (07-10)
· DBA用於查詢當前數據庫表格記錄條數的腳本 (07-04) · DBA:實例講解非"Unicode"數據庫中的XML (06-30)
· DBA創建用戶帳戶及分配特定特權的具體步驟 (06-27) · DBA創建用戶帳戶及分配特定特權的具體步驟 (06-27)
· 講解DBA在系統設計和開發中的工作範疇 (06-26) · 講解數據庫管理員(DBA)與開發人員的關係 (06-25)
· DBA必須具備跨平臺管理不同RDBMS的能力 (06-13) · DBA必須具備跨平臺管理不同RDBMS的能力 (06-13)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 中小企業發展緩慢 電子商務存在的問題多
· 馬雲追加20億投資淘寶 圖謀電子商務霸主
· 國產ITIL運維先行者 四大廠商角力BI市場
· 企業資訊安全解決方案 方正電子公文系統
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統