時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
?? 現(xiàn)今的公司需要易訪問(wèn)且可用性好的商業(yè)數(shù)據(jù),以便他們可以在全球市場(chǎng)中獲得一席之地。與易訪問(wèn)數(shù)據(jù)的這個(gè)需求相呼應(yīng),關(guān)系數(shù)據(jù)庫(kù)和分析數(shù)據(jù)庫(kù)在規(guī)模方面繼續(xù)發(fā)展,內(nèi)嵌數(shù)據(jù)庫(kù)和許多產(chǎn)品一起出現(xiàn),并且許多公司將服務(wù)器合并來(lái)減輕管理工作。當(dāng)公司的數(shù)據(jù)環(huán)境在規(guī)模和復(fù)雜度方面持續(xù)發(fā)展的同時(shí),他們必須維護(hù)最佳的性能。
?? 本文描述了SQL Server 2008的性能和擴(kuò)展能力,并解釋了你可以怎樣使用這些功能來(lái)實(shí)現(xiàn):
?? ◆使用可用于數(shù)據(jù)庫(kù)引擎、分析服務(wù)、報(bào)表服務(wù)和集成服務(wù)的工具和功能來(lái)優(yōu)化任何規(guī)模的數(shù)據(jù)庫(kù)性能。
?? ◆擴(kuò)展你的服務(wù)器來(lái)充分利用新的硬件能力。
?? ◆擴(kuò)展你的數(shù)據(jù)庫(kù)環(huán)境來(lái)優(yōu)化響應(yīng)速度并使你的數(shù)據(jù)更易于用戶訪問(wèn)。
?? 使用SQL Server 2008優(yōu)化性能
?? 由于公司數(shù)據(jù)在規(guī)模和復(fù)雜度方面繼續(xù)發(fā)展,你必須采取行動(dòng)來(lái)提供最佳的數(shù)據(jù)訪問(wèn)時(shí)間。SQL Server 2008包括許多特性和增強(qiáng)的功能來(lái)優(yōu)化所有方面的性能,包括關(guān)系型聯(lián)機(jī)事務(wù)處理(OLTP)數(shù)據(jù)庫(kù);聯(lián)機(jī)分析處理(OLAP)數(shù)據(jù)庫(kù);報(bào)表;數(shù)據(jù)抽取、轉(zhuǎn)換和加載(ETL)處理。
?? 關(guān)系型數(shù)據(jù)庫(kù)的性能
?? 在大多數(shù)商業(yè)環(huán)境中,關(guān)系型數(shù)據(jù)庫(kù)是業(yè)務(wù)關(guān)鍵應(yīng)用程序和服務(wù)的核心所在。隨著數(shù)據(jù)量的增長(zhǎng),以及依賴于關(guān)系數(shù)據(jù)存儲(chǔ)的用戶和應(yīng)用程序數(shù)目的增長(zhǎng),公司必須能夠確保他們的數(shù)據(jù)系統(tǒng)具有一致的性能和響應(yīng)。SQL Server 2008提供了一個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)引擎,它支持大型關(guān)系數(shù)據(jù)庫(kù)和復(fù)雜的查詢處理。
?? 可測(cè)量的實(shí)際性能
?? SQL Server 2008建立在之前SQL Server 版本的行業(yè)領(lǐng)先的性能之上,給你的公司提供了最高級(jí)的標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)性能。使用事務(wù)處理性能委員會(huì)的TPC-C基準(zhǔn)示范了SQL Server 的高性能,Microsoft是第一個(gè)發(fā)布更新的TCP-E基準(zhǔn)結(jié)果的數(shù)據(jù)庫(kù)銷售商,這更精確地表現(xiàn)了現(xiàn)在公司里普遍存在的OLTP工作負(fù)載的種類。
?? 此外,SQL Server 通過(guò)一個(gè)創(chuàng)記錄的3GB的TPC-H結(jié)果顯示了它對(duì)大范圍的數(shù)據(jù)倉(cāng)庫(kù)工作量的執(zhí)行能力,這表明了SQL Server 2008基礎(chǔ)的擴(kuò)展能力和性能。
?? 高性能的查詢處理引擎
?? SQL Server 的高性能查詢處理引擎幫助用戶將他們的應(yīng)用程序性能提高到最大。這個(gè)查詢處理引擎評(píng)估查詢,并產(chǎn)生基于動(dòng)態(tài)維護(hù)的、關(guān)于索引和密鑰選擇及數(shù)據(jù)量統(tǒng)計(jì)的最佳查詢執(zhí)行計(jì)劃。你可以在SQL Server 2008中鎖定查詢計(jì)劃以確保普通查詢執(zhí)行時(shí)的穩(wěn)定性能。查詢處理引擎還可以利用多核或多處理器系統(tǒng),并生成能夠利用并行性進(jìn)一步提高性能的執(zhí)行計(jì)劃。
?? 一般情況下,在查詢性能方面最大的瓶頸是磁盤(pán)I/O。SQL Server的動(dòng)態(tài)緩存能力降低了對(duì)物理磁盤(pán)的訪問(wèn)次數(shù),并且查詢處理引擎使用預(yù)讀取掃描來(lái)預(yù)測(cè)一個(gè)給定的計(jì)劃所需的數(shù)據(jù)頁(yè)面,并預(yù)先將它們讀取到緩存里,這可以顯著地提高整個(gè)性能。另外,SQL Server 2008支持本地?cái)?shù)據(jù)壓縮,從而可以降低必須讀取的數(shù)據(jù)頁(yè)面的數(shù)量,并提高了I/O 工作負(fù)載的性能。
?? SQL Server 2008支持表和索引的分割,這使得管理員可以將同一個(gè)表或索引分配到單獨(dú)的物理存儲(chǔ)設(shè)備上,從而通過(guò)多個(gè)文件組來(lái)控制數(shù)據(jù)的物理存放位置。在SQL Server 2008中針對(duì)查詢處理引擎的優(yōu)化使得它可以并行地訪問(wèn)分區(qū)數(shù)據(jù),并顯著提高了性能。
?? 性能優(yōu)化工具
?? SQL Server 2008包含SQL Server Profiler 和Database Engine Tuning Advisor。通過(guò)使用SQL Server Profiler,你可以捕捉應(yīng)用程序典型負(fù)載中所發(fā)生的事件,然后在Database Engine Tuning Advisor 中將這些事件重現(xiàn),從而針對(duì)數(shù)據(jù)的索引和分區(qū)生成相應(yīng)建議,這樣你就可以優(yōu)化應(yīng)用程序的性能了。
?? 在創(chuàng)建了最適合你的應(yīng)用程序的工作負(fù)載的索引和分區(qū)之后,你可以使用SQL Server Agent來(lái)制定一個(gè)自動(dòng)的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃。這個(gè)自動(dòng)的維護(hù)會(huì)定期的重新組織或重建索引,并更新索引和選擇統(tǒng)計(jì),以確保當(dāng)數(shù)據(jù)插入和修改你的數(shù)據(jù)庫(kù)的物理數(shù)據(jù)頁(yè)面片段時(shí)一直提供最佳的性能。
?? Resource Governor
?? 通常,一個(gè)單獨(dú)的服務(wù)器用來(lái)提供多個(gè)數(shù)據(jù)服務(wù)。在一些情況下,許多應(yīng)用程序和工作負(fù)載依賴于同一個(gè)數(shù)據(jù)源。在目前所流行的服務(wù)器合并的趨勢(shì)下,要為一個(gè)給定的工作負(fù)載提供可預(yù)測(cè)的性能是很困難的,因?yàn)橥_(tái)服務(wù)器上的其它工作負(fù)載會(huì)競(jìng)爭(zhēng)系統(tǒng)資源。在一個(gè)單獨(dú)的服務(wù)器上有多個(gè)工作負(fù)載,管理員必須避免出現(xiàn)某些問(wèn)題,例如使其它工作負(fù)載一直等待系統(tǒng)資源的失效查詢,或者低優(yōu)先級(jí)的工作負(fù)載反過(guò)來(lái)影響高優(yōu)先級(jí)的工作負(fù)載。SQL Server 2008提供了Resource Governor,它使得管理員可以對(duì)運(yùn)行在一個(gè)SQL Server實(shí)例上的各個(gè)工作負(fù)載定義和分配優(yōu)先級(jí)。工作負(fù)載基于如用戶、應(yīng)用程序和數(shù)據(jù)庫(kù)等因素,通過(guò)對(duì)資源定義限制,管理員可以將失效查詢的可能性降至最低,還可以限制獨(dú)占資源的工作負(fù)載。通過(guò)設(shè)置優(yōu)先級(jí),管理員可以優(yōu)化一個(gè)關(guān)鍵任務(wù)的處理性能,同時(shí)維護(hù)服務(wù)器上其它工作負(fù)載的可預(yù)測(cè)性。
?? 性能套件
?? SQL Server 2008提供了性能套件,它是一套用來(lái)收集、分析、排除故障和存儲(chǔ)SQL Server 2008診斷信息的集成框架。性能套件為性能監(jiān)控提供了一個(gè)端對(duì)端的解決方案,其中包括針對(duì)性能數(shù)據(jù)的低開(kāi)銷收集、集中化存儲(chǔ)、以及分析報(bào)表。你可以使用SQL Server 2008管理套件來(lái)管理收集工作,例如可以使用數(shù)據(jù)收集器、啟動(dòng)一個(gè)收集集合并查看作為性能狀態(tài)面板的系統(tǒng)收集集合報(bào)表。你還可以使用系統(tǒng)存儲(chǔ)結(jié)構(gòu)和性能套件應(yīng)用程序編程接口(API)來(lái)建立你自己的基于性能套件的性能管理工具。
?? 性能套件提供了一個(gè)統(tǒng)一的數(shù)據(jù)收集基礎(chǔ)架構(gòu),它在每一個(gè)你想監(jiān)控的SQL Server實(shí)例中都有一個(gè)數(shù)據(jù)收集器。這個(gè)數(shù)據(jù)收集器非常靈活,它可以管理數(shù)據(jù)收集范圍以適應(yīng)開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境。你使用這個(gè)數(shù)據(jù)收集框架就可以輕松地收集性能數(shù)據(jù)和一般的診斷數(shù)據(jù)。
?? 該數(shù)據(jù)收集器基礎(chǔ)設(shè)施推出了以下新的概念和定義:
?? ◆數(shù)據(jù)提供商。性能或診斷信息的來(lái)源可以包括SQL Trace 、性能計(jì)數(shù)器和Transact-SQL查詢(例如,從分布式的管理視圖中獲得數(shù)據(jù))。
?? ◆收集器類型。一個(gè)邏輯封裝,它提供了從數(shù)據(jù)提供商處收集數(shù)據(jù)的機(jī)制。
?? ◆收集項(xiàng)目。一個(gè)收集器類型的實(shí)例。當(dāng)創(chuàng)建一個(gè)收集項(xiàng)目時(shí)為這個(gè)項(xiàng)目定義輸入屬性和收集頻率。一個(gè)收集項(xiàng)目不能單獨(dú)存在。
?? ◆收集集合。數(shù)據(jù)收集的基本單位。一個(gè)收集集合是一組收集項(xiàng)目的集合,它們?cè)谝粋€(gè)SQL Server 實(shí)例上定義和部署。收集集合可以各自獨(dú)立運(yùn)行。
?? ◆收集模式。一個(gè)收集集合中數(shù)據(jù)收集和存儲(chǔ)的方式。這個(gè)收集模式可以設(shè)置為緩存或不緩存。收集模式將影響用于該收集集合的工作和時(shí)間表的類型。
?? ◆數(shù)據(jù)收集器是可擴(kuò)展的,它可以添加新的數(shù)據(jù)提供者。
?? 當(dāng)配置數(shù)據(jù)收集器時(shí),會(huì)創(chuàng)建一個(gè)默認(rèn)名稱為MDW的關(guān)系數(shù)據(jù)庫(kù)作為管理數(shù)據(jù)倉(cāng)庫(kù),其中將存儲(chǔ)收集來(lái)的數(shù)據(jù)。這個(gè)數(shù)據(jù)庫(kù)可以和數(shù)據(jù)收集器放在同一個(gè)系統(tǒng)上,或者放在一個(gè)單獨(dú)的服務(wù)器上。管理數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象包括以下三種預(yù)配置的模式,其作用各不相同:
?? ◆Core 模式 - 包括用于組織和標(biāo)識(shí)收集到的數(shù)據(jù)的表和存儲(chǔ)過(guò)程。
?? ◆Snapshot 模式 - 包括數(shù)據(jù)表、視圖和其它對(duì)象,用于支持標(biāo)準(zhǔn)的收集器類型的數(shù)據(jù)。
?? ◆Custom_Snapshot 模式 - 可以創(chuàng)建新的數(shù)據(jù)表來(lái)支持用戶定義的、按標(biāo)準(zhǔn)的、以及擴(kuò)展的收集器類型所創(chuàng)建的收集集合。
?? 性能套件提供了一組強(qiáng)大的預(yù)先配置的系統(tǒng)收集集合,包括Server Activity、 Query Statistics 和Disk Usage,來(lái)幫助你快速分析所收集的數(shù)據(jù)。通常使用◆Server Activity 系統(tǒng)收集集合來(lái)開(kāi)始監(jiān)控和故障排除。在SQL Server管理套件中發(fā)布了一組與每一個(gè)系統(tǒng)收集集合相關(guān)的報(bào)表,你可以將這些報(bào)表作為性能狀態(tài)面板來(lái)幫助你分析數(shù)據(jù)庫(kù)系統(tǒng)的性能,如圖1所示。
?? 數(shù)據(jù)倉(cāng)庫(kù)和分析性能
?? 數(shù)據(jù)倉(cāng)庫(kù)環(huán)境必須能夠滿足數(shù)量不斷發(fā)展的數(shù)據(jù)和用戶需求,并維護(hù)最佳的性能。隨著數(shù)據(jù)倉(cāng)庫(kù)查詢變得越來(lái)越復(fù)雜,查詢的每一部分都必須進(jìn)行優(yōu)化以維護(hù)可以接受的性能。在SQL Server 2008中,查詢優(yōu)化器可以動(dòng)態(tài)地導(dǎo)入一個(gè)最佳的位圖過(guò)濾器來(lái)加強(qiáng)星型模式(star schema)的查詢性能。此外,SQL Server 2008支持?jǐn)?shù)據(jù)分割、高級(jí)索引功能和索引視圖來(lái)支持更大型的數(shù)據(jù)存儲(chǔ),還有稀疏列和有效的數(shù)據(jù)類型,例如VARDECIMAL,對(duì)于包含大量 NULL 值的大型表,它可以降低相關(guān)開(kāi)銷(數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)普通特性)。
?? 分析服務(wù)應(yīng)用程序需要大型且復(fù)雜的計(jì)算。寶貴的處理器時(shí)間浪費(fèi)在計(jì)算解決 NULL 或零數(shù)據(jù)的聚合上。在SQL Server 2008分析服務(wù)中的塊計(jì)算使用默認(rèn)的值,將要計(jì)算的表達(dá)式的數(shù)目降至最低,并將單元導(dǎo)航限制為整個(gè)空間只有一次,而不是每個(gè)單元一次,從而顯著提高了計(jì)算性能。
?? 盡管多維度OLAP(MOLAP)分區(qū)提供了更好的查詢性能,但是需要用到回寫(xiě)功能的公司之前都需要使用關(guān)系型OLAP (ROLAP)分區(qū)來(lái)維護(hù)回寫(xiě)表。SQL Server 2008增加了對(duì)MOLAP分區(qū)執(zhí)行回寫(xiě)操作的能力,這消除了由維護(hù)ROLAP回寫(xiě)表所引起的性能下降的問(wèn)題。
?? 報(bào)表服務(wù)性能
?? SQL Server 2008報(bào)表服務(wù)引擎被重新開(kāi)發(fā),以便通過(guò)按需處理過(guò)程對(duì)報(bào)表服務(wù)添加更好的性能和可擴(kuò)展性。報(bào)表不再局限于內(nèi)存,因?yàn)楝F(xiàn)在報(bào)表處理使用一個(gè)文件系統(tǒng)緩存來(lái)緩解內(nèi)存的壓力。報(bào)表處理還可以適應(yīng)其它消耗內(nèi)存的
關(guān)鍵詞標(biāo)簽:SQL Server 2008
相關(guān)閱讀
熱門(mén)文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系
人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法