達夢資料庫執行緒簡單介紹
達夢資料庫與執行緒管理相關的動態效能檢視主要有V$THREADS、V$PROCESS、V$LATCHES、V$WTHRD_HISTORY。以下我們以dm8資料庫為測試環境,通過動態效能檢視V$THREADS、V$PROCESS來認識達夢資料庫執行緒管理內容。
Ø V$THREADS 達夢資料庫當前活動執行緒的資訊
可以看到當前環境有49個執行緒,我們按執行緒類別進行分類統計:
從結果我們可以看到,有 15 個類別的執行緒,我們可以對這 15 個型別的執行緒,從大方面分為兩類:系統後臺執行緒與使用者執行緒。
系統後臺執行緒:
dm_quit_thd :用於執行正常關閉資料庫的執行緒。
dm_io_thd :IO執行緒,由IO_THR_GROUPS引數控制,預設為2個執行緒,如下我們可以從系統中獲得證明。
dm_rsyswrk_thd :非同步歸檔執行緒,屬於歸檔執行緒,主要負責將任務佇列中的任務,按照歸檔型別進行相應的歸檔處理,一般有日誌flushh執行緒觸發。
dm_chkpnt_thd :檢查點執行緒,主要負責CKPT_LSN的管理。
dm_redolog_thd :日誌flush執行緒,負責日誌刷盤,當事物提交或者發生檢查點是觸發。
dm_hio_thd :IO執行緒,主要處理HFS相關的IO讀取操作,比如HUGE表的IO讀取就有該執行緒負責完成。
dm_sqllog_thd :Thread for writing dmsql dmserver。
dm_purge_thd :purge執行緒。主要負責回滾段清理。
dm_tskwrk_thd :任務執行緒,由引數TASK_THREADS控制,取值範圍為1-1000,預設為16,主要負責完成服務端SQL的解析執行等任務。
dm_trctsk_thd :日誌資訊記錄執行緒,主要負責資料庫告警跟蹤資訊寫入告警日誌檔案中。
dm_wrkgrp_thd :工作執行緒,由引數WORKER_THREADS控制,取值範圍為1-64,預設值為16,主要負責所有實際的資料相關操作。
dm_audit_thd :審計執行緒,主要負責審計日誌記錄與更新。
dm_sched_thd :排程執行緒,每秒鐘輪詢一次,主要負責接管資料庫內部所有需要定時排程的任務,排程執行緒具備喚醒工作執行緒、向任務佇列中新增任務佇列、動態緩衝區檢查、SQL快取清理等許可權。
dm_lsnr_thd :監聽執行緒。主要負責資料庫伺服器埠監聽,處理客戶端請求,並將連線請求加入到工作執行緒的任務佇列,由工作執行緒完成任務處理。監聽執行緒在資料庫服務啟動完成之後才啟動,關閉資料庫時首先被關閉。
使用者執行緒:
dm_sql_thd :使用者執行緒。一般通過客戶端連線的執行緒都是屬於這個類別,也就是說,可以通過select count(*) from v$threads where name = 'dm_sql_thd';語句來檢視資料庫當前活動數量。
通過v$threads執行緒的id列關聯v$sessions的thrd_id列,來檢視具體執行緒的詳細資訊。
Ø V$PROCESS 顯示當前程式資訊
我們先看看v$porcess中的內容:
可以看到只有一條記錄,而pid列的程式號就是對應的伺服器上達夢服務的程式號,從這裡結合V$THREADS中的記錄數,可以看出,達夢資料庫的程式(執行緒)是單程式多執行緒的結構。
總結 :
1 、達夢資料庫採用的是單程式、多執行緒的對稱伺服器架構。
2 、達夢資料庫內部是通過多個後臺執行緒互相協調完成任務處理的,執行緒之間通過一定的同步機制對資料結構進行併發訪問和處理。
3 、達夢資料庫採用的是共享服務模式。
由於本次測試環境的限制,僅能看到達夢資料庫中的部分執行緒型別,還有很多型別的執行緒無法在此陳列,比如日誌apply執行緒、定時器執行緒、MAL相關的執行緒等。對於達夢資料庫執行緒的詳細介紹,使用者可以檢視官方文件-《DM8系統管理員手冊》第四章節管理DM執行緒的內容,此處拋磚引玉,提供一種由內向外學習達夢資料庫技術的思路。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31403259/viewspace-2725208/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 達夢透明分散式資料庫介紹分散式資料庫
- 達夢資料庫全文索引簡介資料庫索引
- 【多執行緒系列】CAS、AQS簡單介紹執行緒AQS
- 國產資料庫:達夢資料庫的幾個版本介紹資料庫
- 達夢資料庫基礎知識(四)管理DM執行緒資料庫執行緒
- 執行緒池的介紹及簡單實現執行緒
- 達夢資料庫索引管理方法詳細介紹資料庫索引
- 達夢資料庫dexp邏輯匯出工具使用介紹資料庫
- 達夢資料庫SQL執行計劃檢視方法資料庫SQL
- 執行緒簡介執行緒
- javascript執行順序簡單介紹JavaScript
- js使用yield模擬多執行緒的方法簡單介紹JS執行緒
- 執行緒池介紹執行緒
- IOS執行緒介紹iOS執行緒
- 達夢資料庫DM8中WITH子句的簡單用法資料庫
- 多執行緒系列(十七) -執行緒組介紹執行緒
- 廣義多執行緒安全之鎖與iOS鎖簡單介紹執行緒iOS
- animate動畫連續執行簡單介紹動畫
- iOS 多執行緒介紹iOS執行緒
- HSQL 資料庫介紹(1)--簡介SQL資料庫
- 達夢資料庫Disql用法詳解之Disql命令列命令用法介紹資料庫SQL命令列
- 達夢資料庫SQL跟蹤日誌詳細介紹及配置方法資料庫SQL
- 達夢資料庫獲取SQL真實的執行計劃資料庫SQL
- js程式碼執行順序簡單介紹JS
- javascript程式碼執行機制簡單介紹JavaScript
- jQuery ajax的執行順序簡單介紹jQuery
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- 資料庫介紹--認識簡單的SQL語句資料庫SQL
- 簡單介紹資料庫技術發展階段!資料庫
- node.js連線mysql資料庫簡單介紹Node.jsMySql資料庫
- Teradata資料庫功能操作簡單介紹(轉載)資料庫
- 程式和執行緒簡介執行緒
- Java執行緒池中執行緒的狀態簡介Java執行緒
- 執行緒併發執行緒安全介紹及java.util.concurrent包下類介紹執行緒Java
- Nexus.js介紹:一個多執行緒的JavaScript執行庫JS執行緒JavaScript
- 達夢資料庫開發資料庫
- 初識達夢資料庫資料庫
- 達夢資料庫學習資料庫