SQL Server數(shù)據(jù)庫(kù)與max degree of parallelism參數(shù)
我們今天主要向大家講述的是SQL Server數(shù)據(jù)庫(kù)中的max degree of parallelism參數(shù),當(dāng) SQL Server 數(shù)據(jù)庫(kù)在具N個(gè)微處理器或是 CPU 的計(jì)算機(jī)上運(yùn)行時(shí),它將為每個(gè)并行計(jì)劃執(zhí)行檢測(cè)***并行度(即運(yùn)行一個(gè)語(yǔ)句所使用的處理器數(shù))。
您可以使用 max degree of parallelism 選項(xiàng)來(lái)限制并行計(jì)劃執(zhí)行時(shí)所用的處理器數(shù)。
當(dāng) SQL Server數(shù)據(jù)庫(kù)在具有多個(gè)微處理器或 CPU 的計(jì)算機(jī)上運(yùn)行時(shí),它將為每個(gè)并行計(jì)劃執(zhí)行檢測(cè)***并行度(即運(yùn)行一個(gè)語(yǔ)句所使用的處理器數(shù))。您可以使用 max degree of parallelism 選項(xiàng)來(lái)限制并行計(jì)劃執(zhí)行時(shí)所用的處理器數(shù)。如果默認(rèn)值為 0,則使用所有可用的處理器。將 max degree of parallelism 設(shè)置為 1 以取消生成并行計(jì)劃。將該值設(shè)置為大于 1 的數(shù)字(***為 64)來(lái)限制執(zhí)行單個(gè)查詢時(shí)所用的***處理器數(shù)。如果指定的值比可用的處理器數(shù)大,則使用實(shí)際可用數(shù)量的處理器。如果計(jì)算機(jī)只有一個(gè)處理器,則將忽略 max degree of parallelism 值。
以下來(lái)自微軟工程師經(jīng)驗(yàn)傳授:
關(guān)于max degree of parallelism這個(gè)選項(xiàng),一般情況下采用默認(rèn)的0就可以了,這樣的話SQL會(huì)根據(jù)查詢的復(fù)雜度來(lái)決定使用多大并發(fā)度的查詢。但是在有些OLTP(聯(lián)機(jī)事務(wù)處理)系統(tǒng)中,我們會(huì)發(fā)現(xiàn)SQL中存在大量的并發(fā)查詢,從而可能從兩方面影響SQL性能:
1. 單個(gè)查詢的并發(fā)度過(guò)高會(huì)導(dǎo)致查詢會(huì)花大量的時(shí)間在等待并發(fā)同步上,從而影響查詢性能
2. 并發(fā)查詢太多會(huì)占用大量的CPU資源,從而減少其它查詢得到CPU時(shí)間的機(jī)會(huì),這樣的話會(huì)使其它查詢變慢。
一般來(lái)說(shuō),如果我們看到SQL Server數(shù)據(jù)庫(kù)中有大量的CXPACKET等待類型、或者有許多查詢長(zhǎng)期處于Runnable的狀態(tài)(表示該查詢?cè)诘却鼵PU時(shí)間片),我們會(huì)建議客戶將并發(fā)度降下來(lái),以進(jìn)一步排查問(wèn)題。
以上的相關(guān)內(nèi)容就是對(duì)SQL Server數(shù)據(jù)庫(kù)的max degree of parallelism參數(shù)的介紹,望你能有所收獲。
上述的相關(guān)內(nèi)容就是對(duì)SQL Server數(shù)據(jù)庫(kù)的max degree of parallelism參數(shù)的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】