电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

DB2 V9.5工作負載管理之閾值(THRESHOLD)

瀏覽:154日期:2023-11-09 11:25:36
在 DB2 V9.5 中,新引入的工作負載管理功能( WLM )可以幫助您標識、管理和監視數據服務器的工作負載。本文將重點介紹 DB2 V9.5 關于工作負載管理(WLM)的閾值(THRESHOLD)設置相關的概念,并結合實際的例子幫助大家理解和提高。

閾值( THRESHOLD )

可以通過創建閾值的方式對服務類所使用的資源進行控制,閾值可以根據不同的類型進行創建。閾值提供一種方法,用來控制每種工作能夠使用的資源數量。在工作負載管理( WLM )解決方案中,你可以使用閾值來防止系統過載或者資源被濫用現象的發生。通過閾值,你可以直接對特定的資源設置限定,當超過限定時,就會觸發特定的動作。

支持的動作有:

STOP EXECUTION:停止違反閾值的相關動作

CONTINUE:繼續執行

收集違反閾值的相關動作信息

不管違反閾值的特定動作被停止還是繼續執行,你都可以收集該動作的詳細信息。當特定動作完成后,其相關信息會被活動的 ACTIVITIES 事件監控器收集到。

每個閾值都有一個應用范圍。閾值的作用域定義其可以操作的數據庫對象。只有在該閾值范圍內發生的動作才會受其影響。閾值的作用域可以是:

數據庫(Database)

服務父類(Service superclass )

服務子類(Service subclass )

工作動作(Work action )

工作負載(Workload )

閾值即可以是 predictive ,也可以是 reactive,也就是說,我們可以定義閾值是前觸發還是后觸發

前觸發閾值是在相應的工作開始之前進行檢查。數據服務器通過 SQL 編譯器得到使用資源的估計值,檢查前觸發閾值是否會被觸發。

后觸發閾值是在相應的工作開始之后進行檢查的。通過對控制資源的大體運行時間使用估計,來評估是否達到了后觸發閾值的邊界。運行時間使用估計不是連續獲得的,而是在每個(特定工作生命周期中)預先選擇的檢查點進行獲取。

需要注意的是,閾值不是適合所有的語句,比如,閾值不能應用在 COMMIT, ROLLBACK, AVEPOINT 以及 ROLLBACK to SAVEPOINT 等。

你可以使用 CREATE THRESHOLD 創建閾值,使用 ALTER THRESHOLD 修改閾值,還可以使用 DROP THRESHOLD 刪除閾值。如果想查詢你定義的閾值,可以查詢 SYSCAT.THRESHOLDS 系統視圖。

下面我們繼續在窗口 1 中來創建一個閾值,來限制包含大的查詢的服務類,閾值的范圍是整個數據庫,閾值的邊界是當 ESTIMATEDSQLCOST 大于 100000,ESTIMATEDSQLCOST 能夠返回優化器分配給 DML 語句相關活動成本的估計值,具體如清單 17 所示:

清單 17 . 在窗口 1 中創建一個閾值,限制包含大查詢的服務類

C:> db2 connect to db2test1 user administrator using passw0rd

數據庫連接信息

數據庫服務器 = DB2 / NT 9.5.0

SQL 授權標識 = ADMINIST . . .

本地數據庫別名 = DB2TEST1

C:> db2 -tvf createthreshold.sql

ALTER THRESHOLD LargeQuery DISABLE

DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的“命令行處理器”命令。在

SQL 處理期間,它返回:

SQL0204N ' LARGEQUERY ' 是一個未定義的名稱。 SQLSTATE = 42704

DROP THRESHOLD LargeQuery

DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的“命令行處理器”命令。在

SQL 處理期間,它返回:

SQL0204N ' LARGEQUERY ' 是一個未定義的名稱。 SQLSTATE = 42704

CREATE THRESHOLD LargeQuery FOR service class SUPER_CLASS ACTIVITIES

ENFORCEMENT DATABASE WHEN ESTIMATEDSQLCOST > 100000 STOP EXECUTION

DB20000I SQL命令成功完成。

繼續在窗口 2 中執行一個大的查詢(此時我們的用戶是 RHETTE,如果執行查詢,該查詢會屬于 SUPER_CLASS 服務類),這時我們會收到“ SQL4712N 已超過閾值 ‘ LARGEQUERY ’。原因碼 = ‘7’。 SQLSTATE = 5U026”的錯誤信息,這是因為我們執行的查詢超過了我們預先定義的邊界,具體如清單 18 所示:

清單18 . 在窗口 2 中執行一個大型查詢

C:> db2 connect to db2test1 user rhette using passw0rd

數據庫連接信息

數據庫服務器 = DB2 / NT 9.5.0

SQL 授權標識 = RHETTE

本地數據庫別名 = DB2TEST1

C:> db2 select count ( * ) from project , project , project , project , project ,

project

SQL4712N 已超過閾值 ' LARGEQUERY '。原因碼 = ' 7 '。 SQLSTATE = 5U026

接下來我們創建一個新的閾值,用來限制同一條 SQL,并發執行數大于 1,我們繼續在窗口 1 中發出 CREATE THRESHOLD 語句,創建新的閾值 MYCUNCURRENT,閾值范圍是整個數據庫,閾值的邊界 CONCURRENTDBCOORDACTIVITIES 大于 1。CONCURRENTDBCOORDACTIVITIES 用來表示某個特定動作的并發執行數。具體如清單 19 所示:

清單 19 . 在窗口 1 中創建一個閾值,限制并發執行數

C:>db2 -tvf crtThresCurrency.sql

ALTER THRESHOLD MYCUNCURRENT DISABLE

DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的“命令行處理器”命令。在

SQL 處理期間,它返回:

SQL0204N ' MYCUNCURRENT ' 是一個未定義的名稱。 SQLSTATE = 42704

DROP THRESHOLD MYCUNCURRENT

DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的“命令行處理器”命令。在

SQL 處理期間,它返回:

SQL0204N ' MYCUNCURRENT ' 是一個未定義的名稱。 SQLSTATE = 42704

CREATE THRESHOLD MYCUNCURRENT FOR SERVICE CLASS subclass_db2admin

UNDER super_class ACTIVITIES ENFORCEMENT DATABASE WHEN CONCURRENTDBCOORDACTIVITIES > 1

STOP EXECUTION

DB20000I SQL命令成功完成。

命令成功完成。我們繼續在窗口 2 中用 DB2ADMIN 用戶連上示例數據庫 DB2TEST1,具體如清單 20 所示:

清單20 . 在窗口 2 中執行一個簡單查詢

C:> db2 connect reset

DB20000I SQL命令成功完成。

C:> db2 connect to db2test1 user db2admin using passw0rd

數據庫連接信息

數據庫服務器 = DB2 / NT 9.5.0

SQL 授權標識 = DB2ADMIN

本地數據庫別名 = DB2TEST1

命令成功完成。我們繼續在窗口 3 中用 DB2ADMIN 用戶連上示例數據庫 DB2TEST1,基本上同時在窗口 2 和窗口 3 執行一個同樣的查詢,會發現窗口 2 執行成功,窗口3執行失敗,報“ SQL4712N 已超過閾值 ‘MYCUNCURRENT’。原因碼 = ‘6'。 ’SQLSTATE = 5U026”錯誤,這是由于在窗口2執行完這條語句后,幾乎同時在窗口 3 執行(此時窗口 2 中的查詢還沒完成),并發數為 2,超過了我們預定義的閾值邊界。具體如清單 21 所示:

清單 21-1 . 在窗口 2 中執行一個簡單查詢

C:> db2 select count ( * ) from rhette.project , rhette.project , rhette.project ,

rhette.project , rhette.project

1

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

3200000

1 條記錄已選擇。

清單 21-2 . 在窗口 3 中執行同一個簡單查詢

C:> db2 select count ( * ) from rhette.project , rhette.project , rhette.project ,

rhette.project , rhette.project

SQL4712N 已超過閾值 ' MYCUNCURRENT '。原因碼 = ' 6 '。 SQLSTATE = 5U026

從上面兩個例子我們可以看到,WHEN 后可以跟不同的閾值謂詞( threshold-predicate ),閾值謂詞用來指定閾值的條件,可以是以下選項:

TOTALDBPARTITIONCONNECTIONS > integer-value

這個條件定義了在一個數據庫分區上可以同時運行的協調器( coordinator )連接的數量上限。條件值可以是任何正整數,包括零(如果違反,則會報 SQLSTATE 42820 )。零的意思是所有新的協調器連接將被阻止連接。所有當前運行或當前隊列中的連接都將繼續,不會被阻止。這個條件的定義域( definition domain )必須是數據庫( DATABASE ),而且其執行范圍( enforcement scope )必須是分區( PARTITION ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。

TOTALSCPARTITIONCONNECTIONS > integer-value

這個條件定義了在一個數據庫分區上特定的服務父類中可以同時運行的協調器( coordinator )連接的數量上限。條件值可以是任何正整數,包括零(如果違反,則會報 SQLSTATE 42820 )。零的意思是新的連接將被阻止加入服務類中。所有當前運行或當前隊列中的連接都將繼續,不會被阻止。這個條件的定義域( definition domain )必須是服務父類( SERVICE SUPERCLASS ),而且其執行范圍( enforcement scope )必須是分區( PARTITION ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。

AND QUEUEDCONNECTIONS > integer-value or AND QUEUEDCONNECTIONS UNBOUNDED

當允許的協調器連接最大值被超過時,用指定的隊列大小(緩存這些連接)。條件值可以是任何正整數,包括零(如果違反,則會報 SQLSTATE 42820)。零的意思是沒有協調器連接將被放入隊列中。指定 UNBOUNDED,意味著將把所有超過協調器連接最大值的連接放入到隊列中,并且 threshold-exceeded-actions 不會被執行。默認值是零。

CONNECTIONIDLETIME > integer-value (DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES )

這個條件定義了數據庫管理器允許一個連接保持空閑狀態的時間上限。條件值可以是任何非零的正整數(如果違反,則會報 SQLSTATE 42820 )。使用一個合法的持續時間關鍵字,為 integer-value 指定適當的時間單位。這個條件的定義域( definition domain )必須是數據庫( DATABASE )或服務父類( SERVICE SUPERCLASS ),而且其執行范圍( enforcement scope )必須是數據庫( DATABASE ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。這個條件將在協調器數據庫分區上作為邏輯條件被強制執行。

因為這個閾值的最小粒度是五分鐘,指定的值將圍繞著五分鐘的非零倍數。萬一指定的值不是五分鐘的非零倍數(超過或小于),那么將自動選擇一個最接近五分鐘非零倍數的整數值。這個閾值的最大值是 2 147 483 400 秒。任何指定的值(使用天、小時、分鐘或者秒),如果其換算成秒的值大于 2 147 483 400 秒,則其將被截斷為 2 147 483 400 秒。修改 DB2CHECKCLIENTINTERVAL 注冊表變量引起檢查頻率變低可能會影響這個閾值的粒度。

CONCURRENTWORKLOADOCCURRENCES > integer-value

這個條件定義在每個數據庫分區上運行的并發工作負載的數量上限。這個條件值可以被設成任何非零整數值(如果違反,則會報 SQLSTATE 42820 )。條件的定義域( definition domain )必須是 WORKLOAD,如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。

CONCURRENTWORKLOADACTIVITIES > integer-value

這個條件定義了每個數據庫分區上工作負載的并發協調器活動和嵌套活動的數量上限。這個條件值可以是任何非零正整數值(如果違反,則會報 SQLSTATE 42820 )。條件的執行范圍( enforcement scope )必須是 WORKLOAD OCCURRENCE,如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。

CONCURRENTDBCOORDACTIVITIES > integer-value

這個條件定義在所有的數據庫分區上指定的作用域中可以并發運行的數據庫協調器活動( database coordinator activities )的數量上限。條件值可以是任何正整數,包括零(如果違反,則會報 SQLSTATE 42820 )。零的意思是任何新的數據庫協調器活動將被阻止執行。所有當前運行或當前隊列中的數據庫協調器活動都將繼續,不會被阻止。這個條件的定義域( definition domain )必須是數據庫( DATABASE ),工作動作( WORK ACTION ),服務父類( SERVICE SUPERCLASS ),或者服務子類( SERVICE SUBCLASS ),而且其執行范圍( enforcement scope )必須是數據庫( DATABASE ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。

AND QUEUEDACTIVITIES > integer-value or AND QUEUEDACTIVITIES UNBOUNDED

當允許的數據庫協調器活動( database coordinator activities )最大值被超過時,用指定的隊列大小(緩存這些數據庫協調器活動)。條件值可以是任何正整數,包括零(如果違反,則會報 SQLSTATE 42820 )。零的意思是沒有數據庫協調器活動將被放入隊列中。指定 UNBOUNDED,意味著將把所有超過數據庫協調器活動最大值的活動放入到隊列中,并且 threshold-exceeded-actions 不會被執行。默認值是零。

ESTIMATEDSQLCOST > bigint-value

這個條件定義了一個活動的優化器分配成本的上限。條件值可以是任何非零正整數(如果違反,則會報 SQLSTATE 42820)。這個條件的定義域( definition domain )必須是數據庫( DATABASE ),工作動作( WORK ACTION ),服務父類( SERVICE SUPERCLASS ),或者服務子類( SERVICE SUBCLASS ),而且其執行范圍( enforcement scope )必須是數據庫( DATABASE ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。這個條件在協調器數據庫分區上是被強制執行的。被這個條件跟蹤的活動有:

DML協調器活動

那些被用戶邏輯調用的嵌套DML活動。因此,那些可以被數據庫管理器初始化的DML活動(比如,實用程序,存儲過程,嵌入式 SQL 等)都不會被這個條件跟蹤(除非他們的開支是被包含在他們的調用者評估上的,也就是間接被跟蹤)。

SQLROWSRETURNED > integer-value

這個條件定義了返回給(應用服務器上的)應用客戶端的行數上限。條件值可以是任何非零正整數(如果違反,則會報 SQLSTATE 42820 )。這個條件的定義域( definition domain )必須是數據庫( DATABASE ),工作動作( WORK ACTION ),服務父類( SERVICE SUPERCLASS ),或者服務子類( SERVICE SUBCLASS ),而且其執行范圍( enforcement scope )必須是數據庫( DATABASE ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。這個條件在協調器數據庫分區上是被強制執行的。被這個條件跟蹤的活動有:

DML 協調器活動;

那些源自用戶邏輯嵌套 DML 活動。因此,那些可以被數據庫管理器初始化的 DML 活動(比如,實用程序,存儲過程,嵌入式 SQL 等)都不會被這個條件跟蹤。

在一個存儲過程內部的返回結果集被分別視同為獨立的活動。沒有存儲過程返回行數的集合限制。

ACTIVITYTOTALTIME > integer-value ( DAY | DAYS | HOUR | HOURS | MINUTE | MINUTES )

這個條件定義數據庫管理器允許一個特定的活動執行的總時間上限,包括這個活動排隊的時間。條件值可以是任何非零正整數(如果違反,則會報 SQLSTATE 42820 )。使用一個合法的持續時間關鍵字,為 integer-value 指定適當的時間單位。這個條件的定義域( definition domain )必須是數據庫( DATABASE )或服務父類( SERVICE SUPERCLASS ),而且其執行范圍( enforcement scope )必須是數據庫( DATABASE ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。這個條件將在協調器數據庫分區上作為邏輯條件被強制執行。

因為這個閾值的最小粒度是五分鐘,指定的值將圍繞著五分鐘的非零倍數。萬一指定的值不是五分鐘的非零倍數(超過或小于),那么將自動選擇一個最接近五分鐘非零倍數的整數值。這個閾值的最大值是 2 147 483 400 秒。任何指定的值(使用天、小時、分鐘或者秒),如果其換算成秒的值大于 2 147 483 400 秒,則其將被截斷為 2 147 483 400 秒。修改 DB2CHECKCLIENTINTERVAL 注冊表變量引起檢查頻率變低可能會影響這個閾值的粒度。

SQLTEMPSPACE > integer-value ( K | M | G )

這個條件定義在任何一個數據庫分區上系統臨時表空間的上限大小。條件值可以是任何非零正整數(如果違反,則會報 SQLSTATE 42820 )。

如果指定了 integer-value K (大小或小寫) , 則最大值是 integer-value 乘以 1024;如果指定了 integer-value M (大小或小寫) , 則最大值是 integer-value 乘以 1 048 576;如果指定了 integer-value G (大小或小寫) , 則最大值是 integer-value 乘以 1 073 741 824。

這個條件的定義域( definition domain )必須是數據庫( DATABASE )或服務父類( SERVICE SUPERCLASS ),而且其執行范圍( enforcement scope )必須是分區( PARTITION ),如果違反了,將報 SQLSTATE 5U037 錯誤,閾值無法創建,因為它違反了限制。這個條件將在協調器數據庫分區上作為邏輯條件被強制執行。以下活動將被這個條件跟蹤:

DML 協調器活動和相應的子代理工作( subsection execution );

那些源自用戶邏輯嵌套 DML 活動和他們相應的子代理工作( subsection execution )。因此,那些可以被數據庫管理器初始化的 DML 活動(比如,實用程序,存儲過程,嵌入式 SQL 等)都不會被這個條件跟蹤。

最后,我們繼續在窗口 1 刪除剛才定義的兩個閾值 MYCUNCURRENT 和 LargeQuery,同樣的,在刪除之前,需要先把閾值變成不可用。具體如清單 22 所示:

清單22 . 在窗口 1 中刪除閾值

C:> db2 - tvf dropThresholds.sql

ALTER THRESHOLD MYCUNCURRENT DISABLE

DB20000I SQL命令成功完成。

DROP THRESHOLD MYCUNCURRENT

DB20000I SQL命令成功完成。

ALTER THRESHOLD LargeQuery DISABLE

DB20000I SQL命令成功完成。

DROP THRESHOLD LargeQuery

DB20000I SQL命令成功完成。

命令成功完成,這樣我們就刪除了剛才我們定義的兩個閾值。

標簽: DB2 數據庫
主站蜘蛛池模板: 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 欧景装饰设计工程有限公司-无锡欧景装饰官网 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 协议书_协议合同格式模板范本大全 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 康明斯发电机,上柴柴油发电机,玉柴柴油发电机组_海南重康电力官网 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | TPE塑胶原料-PPA|杜邦pom工程塑料、PPSU|PCTG材料、PC/PBT价格-悦诚塑胶 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 武汉创亿电气设备有限公司_电力检测设备生产厂家 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 西门子代理商_西门子变频器总代理-翰粤百科 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 |