日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Max Degree of Parallelism最大并行度配置--缓解CPU压力

發布時間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 Max Degree of Parallelism最大并行度配置--缓解CPU压力 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

配置 max degree of parallelism 服務器配置選項

https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-the-max-degree-of-parallelism-server-configuration-option?view=sql-server-ver15

由于公司的業務在急速增長中,發現數據庫服務器已經基本撐不住這么多并發。一方面,要求開發人員調整并發架構,利用緩存減少查詢。一方面從數據庫方面改善并發。數據庫的并行度可設置如下:

1)cost threshold for parallelism:數據庫引擎在編譯的時候,預估執行計劃的cost;若此cost消耗超過cost threshold for parallelism設置的值;sqlserver就會使用并行執行計劃。

2)max degree of parallelism:并行執行計劃最多能使用多少線程并行執行語句。默認值為0

在OLTP環境中,會存在大量的并發查詢,因此會存在以下兩種情況:

1)單個查詢的并發過高,可能會導致等待并發同步的消耗

若SQL Server中有大量的CXPACKET等待類型,則可能由于是并發過高的原因,CXPACKET等待類型是由于等待一個或多個線程同步,而出現的等待類型。

然而并非說CXPACKET等待類型等待就是不好,我們只是需要減少此等待類型。具體查詢如下

SELECT '查看百分比是否>10%,如果大于10%,考慮降低并行度'    
select cast([signal_wait_time_ms] as decimal(30,2))/[wait_time_ms] as [百分比],*     
from sys.dm_os_wait_stats (nolock)    
where [wait_time_ms]<>0 AND  wait_type='CXPACKET'   

2)單個查詢的并發過高,占用大量cpu資源,導致其他線程無法使用

若有許多查詢長期處于Runnable的狀態,則可能是由于并發的影響,其他進程拿不到cpu執行。從而大量線程無法running。具體查詢如下

SELECT '查看cpu任務'    
SELECT scheduler_id, current_tasks_count, runnable_tasks_count    
FROM sys.dm_os_schedulers (nolock)    
WHERE scheduler_id < 255  

如何設置合理的并行度呢?

--配置最大并行度
sp_configure 'max degree of parallelism',1
go
--使設置生效
Reconfigure
go

sp_configure 'cost threshold for parallelism',10--設置為10s
go
--使設置生效
Reconfigure
go

1)在OLTP服務器環境中

a)對并發度要求高,對每個用戶請求都要及時響應,一般建議將max degree of parallelism 設置為1;因此cost threshold for parallelism 的值沒有作用,默認為5即可

b)對并發度要求不高,經常會有復雜查詢的數據庫,若cpu個數<8,一般建議將max degree of parallelism 設置為cpu數量;若cpu個數>=8建議將值設為8;cost threshold for parallelism默認即可

2)在OLAP服務器環境中

由于查詢均比較復雜,則可將max degree of parallelism 設置為0,同時如果考慮到等待消耗問題,則可以考慮將cost threshold for parallelism的值設置為10,以降低并發執行的可能

3)在OLTP和OLAP混合環境中

a)對并發度要求高,則可以考慮將max degree of parallelism 設置為<=4,cost threshold for parallelism值默認即可

b)對并發度要求不高,經常會有復雜查詢的數據庫,若cpu個數<8,一般建議將max degree of parallelism 設置為cpu數量;若cpu個數>=8建議將值設為8;cost threshold for parallelism默認即可

OLAP和OLTP的 概念和區別

聯機事務處理OLTP(on-line transaction processing)主要是執行基本的、日常的事務處理,比如在銀行存取一筆款,就是一個事務交易。OLTP的特點一般有:

1.實時性要求高;

2.數據量不是很大;

3.交易一般是確定的,所以OLTP是對確定性的數據進行存取;(比如存取款都有一個特定的金額)

4.并發性要求高并且嚴格的要求事務的完整,安全性。(比如這種情況:有可能你和你的家人同時在不同的銀行取同一個帳號的款),

聯機分析處理OLAP(On-Line Analytical Processing)是數據倉庫系統的主要應用,支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。典型的應用就是復雜的動態的報表系統。OLAP的特點一般有:

1.實時性要求不是很高,很多應用的頂多是每天更新一下數據;

2.數據量大,因為OLAP支持的是動態查詢,所以用戶也許要通過將很多數據的統計后才能得到想要知道的信息,例如時間序列分析等等,所以處理的數據量很大;

3.因為重點在于決策支持,所以查詢一般是動態的,也就是說允許用戶隨時提出查詢的要求。所以在OLAP中通過一個重要概念“維”來搭建一個動態查詢的平臺(或技術),供用戶自己去決定需要知道什么信息。

以下是大致的區分:

OLTP OLAP

用戶: 操作人員,低層管理人員 決策人員,高級管理人員

功能: 日常操作處理 分析決策

DB設計: 面向應用 面向主題

數據: 當前的,最新的細節的,二維的分立的 歷史的,聚集的,多維的集成的, 統一的

存取: 讀/寫數十條記錄 讀上百萬條記錄

工作單位: 簡單的事務 復雜的查詢

用戶數: 上千個 上百個

DB大小:100MB-GB 100GB-TB

這些概念(或技術)都是應用層面的,這個和用什么數據庫系統是無關的。有興趣的朋友如果愿意了解OLAP的具體應用而又不愿意花太大的力氣,不妨到科研、教育、文化和衛生系統去看一看,他們那里一般都有一個叫做SPSS的統計分析軟件,這是一個和SQLSERVER在同一層次上的世界級的、最權威的統計分析軟件,其菜單上有一個“分析”項目,其下拉的第一個項目就是OLAP,當然也可以自己裝一個試試。

OLTP與OLAP是兩種很高級的應用,以上只是點到了一些最表面的東西,給大家一個拋磚引玉的作用。紙上得來終覺淺,絕知此事要躬行

總結

以上是生活随笔為你收集整理的Max Degree of Parallelism最大并行度配置--缓解CPU压力的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。