介紹下列配置設(shè)置以及使用時(shí)應(yīng)注意的事項(xiàng): • 相似性掩碼 • 輕量池 • 最大異步 io • 最大輔助線程數(shù)量 • 內(nèi)存 • 優(yōu)先級(jí)提升 • 設(shè)置工作集大小
sql server 只需進(jìn)行很少的配置調(diào)整,就能獲得非常高級(jí)的性能。可以通過(guò)使用良好的應(yīng)用程序和數(shù)據(jù)庫(kù)設(shè)計(jì)而不是通過(guò)大量的配置調(diào)整來(lái)獲得高級(jí)性能。有關(guān)如何解決 sql server 的各種性能問(wèn)題的信息,請(qǐng)參閱本文的“參考”部分。
處理性能問(wèn)題時(shí),通過(guò)調(diào)整配置獲得的改善程度通常不太大,除非當(dāng)前沒(méi)有正確配置系統(tǒng)。在 sql server 7.0 版及更高版本中,sql server 使用自動(dòng)配置調(diào)整,并且配置設(shè)置(尤其是高級(jí)設(shè)置)極少需要更改。一般情況下,當(dāng)沒(méi)有難以抗拒的理由以及沒(méi)有仔細(xì)進(jìn)行系統(tǒng)化測(cè)試以驗(yàn)證更改配置的必要性時(shí),請(qǐng)不要更改 sql server 配置。在更改配置前,必須建立一個(gè)基準(zhǔn),以便可以衡量更改后的好處。
如果 sql server 配置不正確,一些設(shè)置可能會(huì)降低服務(wù)器的穩(wěn)定性,或者可能會(huì)致使 sql server 的行為不正常。對(duì)許多不同環(huán)境的多年支持經(jīng)驗(yàn)表明,非默認(rèn)配置設(shè)置的結(jié)果可能介于中性到非常消極之間。
如果確實(shí)更改了配置,必須在更改前后都執(zhí)行嚴(yán)格的系統(tǒng)化性能測(cè)試以評(píng)估改善程度。
根據(jù)實(shí)際的支持方案,sql server 7.0 版或更高版本無(wú)需進(jìn)行任何手動(dòng)配置調(diào)整,就能獲得極其高級(jí)的性能。
在 sql server 7.0 和更高版本中,默認(rèn)情況下,sql server 會(huì)動(dòng)態(tài)調(diào)整用戶連接、鎖和打開(kāi)對(duì)象設(shè)置,所以不要對(duì)這些設(shè)置進(jìn)行任何配置更改。
相似性掩碼
相似性掩碼設(shè)置指將線程綁定到特定 cpu 的牢固程度。默認(rèn)情況下,microsoft windows nt 和 microsoft windows 2000 使用“軟”相似性,這種相似性會(huì)試圖在上次執(zhí)行線程的 cpu 上重新調(diào)度該線程。但是,如果此操作無(wú)法實(shí)現(xiàn),線程可能會(huì)在其他 cpu 上運(yùn)行。
在實(shí)際情況中,如果更改了相似性掩碼設(shè)置的默認(rèn)值,則很少能夠改進(jìn)性能,并且經(jīng)常會(huì)使性能降低。
相似性掩碼將 sql server 限制到可用 cpu 的一個(gè)子集,并且允許其他競(jìng)爭(zhēng)性服務(wù)更好地訪問(wèn) cpu。多數(shù)情況下,因?yàn)?sql server 以普通優(yōu)先級(jí)運(yùn)行,所以不必進(jìn)行此操作。windows nt 或 windows 2000 線程計(jì)劃程序動(dòng)態(tài)調(diào)整所有競(jìng)爭(zhēng)性線程的線程優(yōu)先級(jí),以確保它們?cè)谒锌捎?cpu 中具有平等的機(jī)會(huì)。
除了非常特殊的情況以外,請(qǐng)不要調(diào)整相似性掩碼。如果確實(shí)要選擇調(diào)整相似性掩碼,請(qǐng)?jiān)诟那昂髨?zhí)行嚴(yán)格的系統(tǒng)化測(cè)試,以驗(yàn)證進(jìn)行改進(jìn)的必要性以及改進(jìn)的程度。
輕量池
默認(rèn)情況下,sql server 對(duì)每個(gè)活動(dòng) spid 或用戶進(jìn)程使用一個(gè)線程。這些線程以匯集配置方式運(yùn)行,以使線程數(shù)量可以管理。高級(jí)配置選項(xiàng)“輕量池”(有時(shí)稱為“纖程模式”)使用 windows nt“纖程”支持,基本上通過(guò)單個(gè)線程來(lái)處理多個(gè)執(zhí)行上下文。
根據(jù)實(shí)際生產(chǎn)經(jīng)驗(yàn),除極少數(shù)情況以外,不必使用纖程模式。只有在滿足下列所有條件時(shí),輕量池才可能有用。您必須通過(guò)仔細(xì)的受控測(cè)試來(lái)確定它是否實(shí)際有用。• 正在使用大型多處理器服務(wù)器。
• 所有服務(wù)器都在以最大容量或接近最大容量的狀態(tài)運(yùn)行。
• 發(fā)生了許多上下文切換(每秒鐘 20,000 次以上)。
要查找上下文切換,請(qǐng)使用性能監(jiān)視器,選擇計(jì)數(shù)器線程,選擇對(duì)象 context switches/sec",然后選擇捕獲所有 sql server 實(shí)例。 如果以纖程模式運(yùn)行服務(wù)器,則 sql server 2000 中的 sql mail 不受支持。
最大異步 io
sql server 7.0:sql server 7.0 中提供了最大異步 io 配置設(shè)置。如果您的 raid 系統(tǒng)速度較快并且您有辦法衡量好處,則更改此設(shè)置可能是適當(dāng)?shù)摹3悄哂谢鶞?zhǔn)以便衡量結(jié)果,否則請(qǐng)不要更改此設(shè)置。請(qǐng)監(jiān)視磁盤(pán)活動(dòng)并查找所有磁盤(pán)隊(duì)列問(wèn)題。有關(guān)其他信息,請(qǐng)參閱下列 sql server 聯(lián)機(jī)圖書(shū)主題:
• “最大異步 io 選項(xiàng)”
• “監(jiān)視磁盤(pán)活動(dòng)”
• “確定瓶頸”
sql server 2000:在 sql server 2000 中,無(wú)法更改最大異步 io 配置設(shè)置。sql server 2000 會(huì)自動(dòng)調(diào)整此設(shè)置。
最大輔助線程數(shù)量
默認(rèn)情況下,最大輔助線程數(shù)量設(shè)置為 255,這樣最多可以創(chuàng)建 255 個(gè)輔助線程。多數(shù)情況下,請(qǐng)使用默認(rèn)設(shè)置 255。這并不表示您只能建立 255 個(gè)用戶連接。一個(gè)系統(tǒng)可以具有成千上萬(wàn)個(gè)用戶連接(按其本質(zhì)多路復(fù)用到 255 個(gè)輔助線程),并且一般而言,用戶通常感覺(jué)不到任何延遲。在這種情況下,只可同時(shí)運(yùn)行 255 個(gè)查詢,但這會(huì)多路復(fù)用到可用 cpu 的數(shù)量,因此,無(wú)論所配置的輔助線程數(shù)量為多少,都可以感覺(jué)到并發(fā)特性。
如果將輔助線程的數(shù)量配置為大于默認(rèn)值,則由于調(diào)度和資源開(kāi)銷問(wèn)題,幾乎始終都會(huì)起相反的作用并且會(huì)降低性能。只有在非常特殊的情況下,并且當(dāng)嚴(yán)格的系統(tǒng)化測(cè)試表明增加此設(shè)置會(huì)有所幫助時(shí),才應(yīng)該這樣做。
內(nèi)存
有關(guān)如何配置內(nèi)存的信息,請(qǐng)參閱 sql server 聯(lián)機(jī)圖書(shū)主題“使用內(nèi)存配置選項(xiàng)優(yōu)化服務(wù)器性能”。
有關(guān)如何為群集 sql server 配置內(nèi)存的詳細(xì)信息,請(qǐng)參閱 sql server 聯(lián)機(jī)圖書(shū)主題“創(chuàng)建故障轉(zhuǎn)移群集”中的“使用注意事項(xiàng)”。
優(yōu)先級(jí)提升
默認(rèn)情況下,優(yōu)先級(jí)提升設(shè)置為 0,這樣,無(wú)論您是在單處理器計(jì)算機(jī)還是對(duì)稱的多處理器 (smp) 計(jì)算機(jī)上運(yùn)行 sql server,sql server 都會(huì)以普通優(yōu)先級(jí)運(yùn)行。如果將優(yōu)先級(jí)提升設(shè)置為 1,sql server 進(jìn)程將以較高的優(yōu)先級(jí)運(yùn)行。此設(shè)置不會(huì)使 sql server 進(jìn)程以最高的操作系統(tǒng)優(yōu)先級(jí)運(yùn)行。
根據(jù)實(shí)際的支持經(jīng)驗(yàn),您不必使用優(yōu)先級(jí)提升來(lái)獲取較佳的性能。如果您確實(shí)使用優(yōu)先級(jí)提升,在某些情況下,可能會(huì)干擾服務(wù)器的正常運(yùn)行。因此,除了非常特殊的情況以外,您不應(yīng)使用它。例如,“microsoft 產(chǎn)品支持服務(wù)”可能會(huì)在調(diào)查性能問(wèn)題時(shí)使用優(yōu)先級(jí)提升。
重要說(shuō)明:對(duì)于正在運(yùn)行 sql server 的群集服務(wù)器,請(qǐng)不要使用優(yōu)先級(jí)提升。
設(shè)置工作集大小
不要更改設(shè)置工作集大小的默認(rèn)設(shè)置。使用默認(rèn)值 0,windows nt 或 windows 2000 虛擬內(nèi)存管理器可以確定 sql server 的工作集大小。安裝 sql server 時(shí),安裝程序會(huì)自動(dòng)指示 windows nt 或 windows 2000 優(yōu)化網(wǎng)絡(luò)應(yīng)用程序的性能。因此,windows nt 或 windows 2000 虛擬內(nèi)存管理器進(jìn)行極少的工作集剪裁,從而使得對(duì) sql server 實(shí)例工作集造成的干擾最少。
更改此設(shè)置通常不會(huì)帶來(lái)任何性能方面的好處。根據(jù)實(shí)際的支持案例,更改此設(shè)置帶來(lái)的損害通常比帶來(lái)的好處多。
如果更改設(shè)置工作集大小,還可能會(huì)導(dǎo)致 sql server 出現(xiàn)錯(cuò)誤消息 844 或 845。
新聞熱點(diǎn)
疑難解答
圖片精選