版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、MS SQQL Seerverr 7.00 的 SSAP RR/3 性性能優(yōu)化指指南 1998 年 111 月發(fā)行行 讀者 本文檔所提提供的信息息可以幫助助 SAPP R/33 數(shù)據(jù)庫庫管理員理理解 Miicrossoft SQLL Serrver 7.00 的各個個方面。這這些方面可可以經(jīng)過優(yōu)優(yōu)化,從而而在與 SSAP RR/3 環(huán)環(huán)境相關(guān)的的特有數(shù)據(jù)據(jù)庫工作負負荷條件下下提供最佳佳性能。 雖然本文檔檔是為 SSAP RR/3 站站點量身定定制的,但但是一定要要注意本文文檔中描述述的 SQQL Seerverr 功能和和優(yōu)化技巧巧不僅僅適適用于 SSAP RR/3。大大型到超大大型數(shù)據(jù)庫庫
2、(VLLDB) 需要支持持大量用戶戶連接和大大的工作負負荷,工作作于這一環(huán)環(huán)境中的數(shù)數(shù)據(jù)庫管理理員將從本本文的信息息中獲益匪匪淺。 引言 本篇有關(guān)性性能優(yōu)化的的文檔將討討論 SAAP R/3 環(huán)境境中的 SSQL SServeer 7.0 最佳佳配置。本本指南分為為四個邏輯輯部分。第第一部分,討討論與 MMicroosoftt Winndowss NT Serrver 相關(guān)的配配置選項。第二部分分,描述 SAP R/3 環(huán)境中 SQL Servver 的的重要配置置選項。前前面這兩個個部分直截截了當,其其中還包含含了在 SSQL SServeer 的初初始配置過過程中幾分分鐘就可以以完成的一一
3、些步驟。第三部分分,討論 SQL Servver 的的索引設計計,因為它它與 SAAP R/3 相關(guān)關(guān)。索引分分析往往是是一個極其其棘手的過過程,為使使數(shù)據(jù)庫性性能最佳需需要持續(xù)不不斷地執(zhí)行行索引分析析。 Miicrossoft TechhNet 中的“MMicroosoftt SQLL Serrver 7.0 性能優(yōu)化化指南”應應該作為本本文第三部部分的補充充讀物。該該指南綜合合討論硬件件 I/OO 性能、索引設計計以及 SSQL SServeer 性能能優(yōu)化工具具。第四部部分,討論論 R/33 數(shù)據(jù)庫庫中的 SSQL SServeer 文件件和文件組組的最佳應應用。 Windoows NN
4、T 配置置 Windoows NNT 頁面面文件的大大小應該至至少比服務務器上安裝裝的 RAAM 大三三倍,而且且要至少有有 10 億字節(jié) (1 GGB)。 設置頁面文文件大小 在開始菜單單上,指向向設置,然后后單擊控制制面板。 雙擊系統(tǒng),然然后雙擊性性能選項卡卡。 單擊更改,然然后在起始始大小 (MB) 框中,輸輸入頁面文文件的大小小(按兆字字節(jié) (MMB) 計計)。 單擊確定。 通常,VMMM(虛擬擬內(nèi)存管理理器)已經(jīng)經(jīng)根據(jù) SSQL SServeer 安裝裝的默認設設置進行了了適當?shù)呐渑渲谩?檢查和/或或配置 VVMM 設設置 在開始菜單單上,指向向設置,然后后單擊控制制面板。 雙擊網(wǎng)絡
5、,然然后單擊服服務選項卡卡。 雙擊服務器器,選擇最大大化網(wǎng)絡應應用程序吞吞吐量,然然后單擊確確定。 配置最小影影響的屏幕幕保護程序序和墻紙 在開始菜單單上,指向向設置,然后后單擊控制制面板。 雙擊顯示,然然后單擊背背景選項卡卡。 選定圖案為為(無),并并選定墻紙紙為(無)。 單擊應用,然然后單擊屏屏幕保護程程序選項卡卡。 在屏幕保護護程序下,選選定 Bllank Screeen,然然后選定密密碼保護。 單擊應用。 一些多處理理器服務器器可以將聯(lián)聯(lián)網(wǎng) I/O 請求求動態(tài)分發(fā)發(fā)到最不繁繁忙的處理理器。該硬硬件功能有有助于防止止在服務于于許多聯(lián)網(wǎng)網(wǎng)請求的系系統(tǒng)中出現(xiàn)現(xiàn)處理器瓶瓶頸和不良良網(wǎng)絡性能能。
6、該功能能通常稱為為對稱中斷斷分發(fā),使使用該功能能可以改進進可擴展性性能并防止止出現(xiàn)在其其它處理器器還有剩余余容量時某某一個處理理器卻成為為瓶頸的情情況。它在在 Penntiumm 處理器器系列的 Winddows NT 44.0 HHAL(硬硬件抽象層層)中可以以找到。WWindoows 20000 也支支持該功能能。 不同處理器器操作平臺臺使用不同同方法分發(fā)發(fā)中斷。網(wǎng)網(wǎng)卡的中斷斷分發(fā)是由由每個處理理器操作平平臺的 HHAL 來來控制的。HAL 實施的中中斷方案取取決于處理理器的性能能。某些處處理器包含含了中斷控控制硬件,如如高級可編編程中斷控控制器 (APICC)。APPIC 允允許處理器器
7、將中斷路路由到計算算機上的其其它處理器器。有關(guān)特特定處理器器操作平臺臺所使用的的分發(fā)方法法的詳細信信息,請咨咨詢操作平平臺供應商商。 在默認情況況下,Wiindowws NTT 4.00 不使用用對稱中斷斷分發(fā),而而是將與網(wǎng)網(wǎng)卡 (NNIC) 相關(guān)的延延遲進程調(diào)調(diào)用 (DDPC) 活動分配配給系統(tǒng)中中編號最大大的處理器器。在安裝裝有多個 NIC 且 NIIC 活動動的系統(tǒng)中中,每個額額外的 NNIC 的的活動都指指派到下一一個編號最最大的處理理器。 如果處理器器頻繁以百百分之百的的容量(性性能監(jiān)視器器所顯示的的 Proocesssor: % Prrocesssor Timee = 1100%)
8、操操作而且一一半以上時時間用于為為 DPCC 提供服服務上(即即如果 PProceessorr: % DPC Timee 550%),那那么可以通通過調(diào)整 ProccessoorAfffinittyMassk 來提提高性能。 警告 注冊冊表編輯器器使用不當當會導致嚴嚴重的問題題,有可能能需要重新新安裝操作作系統(tǒng)。使使用注冊表表編輯器要要特別小心心。Miccrosooft 不不保證能夠夠解決因注注冊表編輯輯器使用不不當而導致致的問題。建議您在在執(zhí)行修改改前備份注注冊表內(nèi)容容,這樣在在注冊表修修改出現(xiàn)問問題時就能能夠還原內(nèi)內(nèi)容。有關(guān)關(guān)備份和還還原注冊表表信息的說說明可以在在注冊表編編輯器的聯(lián)聯(lián)機幫
9、助中中找到。 在能夠進行行對稱中斷斷分發(fā)的多多處理器服服務器上,將將 Winndowss NT 注冊表中中 ProocesssorAfffiniityMaask 數(shù)數(shù)值項的值值設置為零零。這樣就就會將網(wǎng)絡絡 I/OO 請求動動態(tài)分發(fā)到到最有能力力處理請求求的處理器器中。PrrocesssorAAffinnityMMask 位于:HHKEY_LOCAAL_MAACHINNE SSysteem CCurreentCoontroolSett Seervicces NDISS Paarameeterss。 啟動注冊表表編輯器以以設置 PProceessorrAffiinityyMaskk 在開始菜單單
10、上,單擊擊運行。 鍵入 reegedtt32。 在注冊表編編輯器中找找到適當關(guān)關(guān)鍵字 在窗口菜單單中選擇 HKEYY_LOCCAL_MMACHIINE。 在注冊表編編輯器左邊邊窗格中,雙雙擊 SYYSTEMM。 雙擊 CuurrenntConntrollSet,雙雙擊 Seervicces,雙雙擊 NDDIS ,然然后雙擊 Paraameteers。 將 ProocesssorAfffiniityMaask 設設置為零 在注冊表編編輯器右邊邊窗格中,雙雙擊 PrrocesssorAAffinnityMMask。 鍵入 0(零零),然后后單擊確定定。 在注冊表菜菜單上,單單擊退出。 SQL SS
11、erveer 配置置 SQL SServeer 內(nèi)存存的推薦設設置取決于于 R/33 實例對對數(shù)據(jù)庫服服務器的使使用情況。如果 SSQL SServeer 是作作為專用數(shù)數(shù)據(jù)庫服務務器而運行行,建議 SQL Servver 按按照默認值值動態(tài)調(diào)整整它所需要要的內(nèi)存。 R/3 實實例最小值最大值專用數(shù)據(jù)庫庫服務器默認值默認值更新實例已安裝 RRAM 的的 40%已安裝 RRAM 的的 65%中心實例已安裝 RRAM 的的 45%已安裝 RRAM 的的 45%在有 2 GB RRAM 的的中心實例例上設置內(nèi)內(nèi)存的例子子 (Ennterpprisee Mannagerr) 在右邊窗格格中,雙擊擊 S
12、QLL Serrver Grouup 圖標標。 雙擊 R/3 數(shù)據(jù)據(jù)庫服務器器的 SQQL Seerverr 圖標。 單擊 Meemoryy 選項卡卡,然后單單擊 Usse a fixeed meemoryy sizze (MMB)。 將 Usee a ffixedd memmory sizee (MBB) 下的的滑塊移動動到 9000。 選定 Reeservve phhysiccal mmemorry foor SQQL Seerverr ,單擊擊 Appply ,然然后單擊 OK。 完成 SQQL Seerverr 的內(nèi)存存配置之后后,建議使使用 seet woorkinng seet s
13、iize 選選項保留與與 SQLL Serrver 內(nèi)存設置置相等的物物理內(nèi)存空空間。設置置該選項意意味著 WWindoows NNT 不轉(zhuǎn)轉(zhuǎn)換出 SSQL SServeer 頁。 配置設置工工作集大小小選項的例例子 (EEnterrprisse Maanageer) 在右邊窗格格中,雙擊擊 SQLL Serrver Grouup 圖標標。 雙擊 R/3 數(shù)據(jù)據(jù)庫服務器器的 SQQL Seerverr 圖標。 單擊 Meemoryy 選項卡卡,然后選選定 seelectt Resservee phyysicaal meemoryy forr SQLL Serrver。 單擊 Appply,然然
14、后單擊 OK。 SAP 測測試顯示出出,在大多多數(shù) R/3 數(shù)據(jù)據(jù)庫服務器器操作環(huán)境境下網(wǎng)絡數(shù)數(shù)據(jù)包大小小為 8,192 字節(jié)時性性能最佳。該選項需需要使用 SQL Servver QQueryy Anaalyzeer 來設設置。 設置網(wǎng)絡數(shù)數(shù)據(jù)包大小小 (Quuery Anallyzerr) 鍵入 exxec ssp_coonfiggure nettworkk paccket sizee, 88192。 鍵入 reeconffigurre wiith ooverrride。 按 CTRRL + E 執(zhí)行行以上命令令。 在專用服務務器上,建建議使用 SQL Servver ppriorrity
15、 boosst 選項項。 設置優(yōu)先級級提升選項項 (Ennterpprisee Mannagerr) 在右邊窗格格中,雙擊擊 SQLL Serrver Grouup 圖標標。 雙擊 R/3 數(shù)據(jù)據(jù)庫服務器器的 SQQL Seerverr 圖標。 單擊 Prrocesssor 選項卡,然然后在 PProceessorr Conntroll 框中,選選定 Booost SQL Servver ppriorrity on WWindoows NNT。 建議將 SSQL SServeer inndex creaate mmemorry 選項項配置為 16 MMB。該選選項需要使使用 SQQL Seer
16、verr 查詢分分析器來設設置。 設置索引創(chuàng)創(chuàng)建內(nèi)存選選項 (QQueryy Anaalyzeer) 鍵入 exxec ssp_coonfiggure inddex ccreatte meemoryy, 1160000。 鍵入 reeconffigurre wiith ooverrride。 按 CTRRL + E 執(zhí)行行以上命令令。 禁用 VBBHDR、VBMOOD 和 VBDAATA 表表的頁面鎖鎖定 (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令: exec sp_iindexxoptiion VBHDDR,alloowpaggeloccks,fallse exec
17、c sp_indeexopttion VBMMOD,alllowpaageloocks,faalse exeec spp_inddexopptionn VBBDATAA,aallowwpageelockks,falsse 按 CTRRL + E 執(zhí)行行以上命令令。 如果數(shù)據(jù)庫庫服務器上上的所有處處理器的利利用率都很很高(性能能監(jiān)視器表表明在多處處理器服務務器上所有有處理器的的處理器利利用率全部部大于 995%),那那么就有必必要打開 SQL Servver llighttweigght ppooliing。在在所有處理理器都非常常接近完全全利用時,lightweight pooling 可以幫
18、助恢復大約 5% 到 7% 的 CPU。 打開 SQQL Seerverr ligghtweeightt pooolingg (Ennterpprisee Mannagerr) 在右邊窗格格中,雙擊擊 SQLL Serrver Grouup 圖標標。 雙擊 R/3 數(shù)據(jù)據(jù)庫服務器器的 SQQL Seerverr 圖標。 單擊 Prrocesssor 選項卡,選選定 seelectt Usee Winndowss NT Fibeers,然然后單擊 Applly。 當提示重新新啟動 SSQL SServeer 時,單單擊 Yees,然后后單擊 OOk。 SQL SServeer afffiniit
19、y mmask 配置選項項提供了不不能執(zhí)行 SQL Servver 線線程的特定定處理器的的規(guī)范。最最好運用 SQL Servver 關(guān)關(guān)系掩碼的的默認設置置,即零。關(guān)系掩碼碼的設置為為零表明允允許在所有有處理器上上執(zhí)行 SSQL SServeer 線程程。幾乎在在所有情況況下,該設設置都會使使性能最佳佳,因為它它避免了在在其它處理理器上有剩剩余容量的的情況下而而在某一臺臺處理器上上的 SQQL Seerverr 連接非非常繁忙的的情況。MMicroosoftt 的 IIT 機構(gòu)構(gòu)和參與 SQL Servver 77.0 EEarlyy Adoopterr 計劃的的 SAPP R/33 用戶已
20、已運用了關(guān)關(guān)系掩碼的的默認設置置,結(jié)果性性能良好。 索引設計與與維護 “Micrrosofft SQQL Seerverr 7.00 性能優(yōu)優(yōu)化指南”提供了有有關(guān) SQQL Seerverr 索引和和性能優(yōu)化化的重要信信息。此文文檔可在“查找詳細細信息”處處找到。 大型的 SSAP RR/3 安安裝會有一一些包含非非常多行的的 SQLL Serrver 表。有了了大的表,索索引對數(shù)據(jù)據(jù)庫 I/O 性能能影響極大大。 在單個數(shù)據(jù)據(jù)庫行或少少量數(shù)據(jù)庫庫行上搜索索并執(zhí)行的的操作,應應該有一個個基于提供供最高級別別選擇性的的一列或幾幾列所定義義的非聚集集或聚集索索引。這樣樣,SQLL Serrver
21、查詢處理理器和存儲儲引擎就能能夠?qū)z索索行所需的的 I/OO 控制到到最小化。例如,如如果必須定定期從非常常大的 OOrderrs 表中中根據(jù) oorderrid 來來檢索單個個定單記錄錄,那么基基于 orrderiid 列定定義索引可可以加快查查詢的速度度就是有意意義的。 在多數(shù)數(shù)據(jù)據(jù)庫行上搜搜索和執(zhí)行行的操作應應該基于定定義范圍掃掃描的列定定義聚集索索引。從非非常大的七七月份 OOrderrs 表中中檢索所有有定單的查查詢就是范范圍掃描的的一個例子子。在這種種情況下,Orders 表的日期列就是聚集索引的最佳列。 即將發(fā)行的的 SAPP R/33 4.55B 版本本將帶有一一個影響 SQL
22、 Servver 聚聚集索引選選擇靈活性性的重要功功能。在 4.5BB 版中,RR/3 數(shù)數(shù)據(jù)字典對對除主鍵列列以外的列列聚集索引引有被動支支持。被動動支持的意意思是:在在數(shù)據(jù)庫表表已改變以以致于聚集集索引從主主鍵移至了了另一列或或列集的情情況下,SSAP RR/3 數(shù)數(shù)據(jù)字典會會識別并記記錄 SQQL Seerverr 聚集索索引的位置置。創(chuàng)建聚聚集索引需需要使用與與 R/33 工具對對應的 SSQL SServeer 工具具。但是,聚聚集索引的的位置在創(chuàng)創(chuàng)建之后不不會在數(shù)據(jù)據(jù)庫轉(zhuǎn)換和和 R/33 版本升升級過程中中丟失。 4.5B 以后的 SAP R/3 版本中有有可能包含含 SQLL S
23、errver 聚集索引引的積極支支持。積極極支持的意意思是:除除前面所講講到的 RR/3 DData Dicttionaary供的的支持外,RR/3 工工具還將支支持在 SSQL SServeer 表上上的列(除除主鍵列以以外)的聚聚集索引創(chuàng)創(chuàng)建。 聚集索引支支持中的這這些更改與與希望改進進其 R/3 報告告查詢性能能的 R/3 數(shù)據(jù)據(jù)庫管理員員的想法有有很大出入入。運行 SAP R/3 的大型公公司的月末末和季度報報告可能會會使用數(shù)據(jù)據(jù)庫服務器器上的范圍圍掃描。通通常情況下下會是這樣樣一種情況況:在大表表上所執(zhí)行行的范圍掃掃描將不以以與定義表表的主鍵相相同的列為為基礎。目目前,SAAP R/
24、3 SQQL Seerverr 數(shù)據(jù)庫庫實施將所所有表上的的主鍵配置置為聚集主主鍵。某些些情況對測測試非主鍵鍵組成部分分且常常為為了報告目目的而用于于大型表的的列的聚集集索引的使使用非常有有利。ALLTER TABLLE 命令令用于將聚聚集主鍵更更改為非聚聚集主鍵。 以下索引分分析示例討討論了這樣樣一種情況況,即將聚聚集主鍵更更改為非聚聚集主鍵以以便聚集索索引可以基基于另一列列進行定義義并預排將將聚集主鍵鍵更改為非非聚集主鍵鍵所涉及的的步驟,這這一點是有有意義的。 有關(guān)聚集和和非聚集索索引選擇的的詳細信息息,應參閱閱“Miccrosooft SSQL SServeer 7.0 性能能優(yōu)化指南南
25、”。 SAP RR/3 在在 ST004 事務務處理中提提供 MSSSTATTS 工具具,可以幫幫助 R/3 數(shù)據(jù)據(jù)庫管理員員跟蹤數(shù)據(jù)據(jù)庫服務器器上所執(zhí)行行的 SQQL Seerverr 存儲過過程的資源源占用。所所有 R/3 與數(shù)數(shù)據(jù)庫服務務器的正常常交互作用用都使用存存儲過程執(zhí)執(zhí)行。 MMSSTAATS 提提供有助于于根據(jù)資源源使用區(qū)分分存儲過程程的信息。MSSTTATS 返回的信信息的例子子包括:存存儲過程的的調(diào)用次數(shù)數(shù)、用于調(diào)調(diào)用存儲過過程的平均均和最長時時間、存儲儲過程調(diào)用用所返回的的行平均數(shù)數(shù)和總行數(shù)數(shù)、存儲過過程是否使使用了游標標、存儲過過程用于提提取的時間間與空閑時時間等等。
26、MSSTAATS 提提供了用于于確定在 R/3 數(shù)據(jù)庫服服務器上所所運行的費費用最高的的存儲過程程的重要工工具。性能能分析應集集中于這些些費用最高高的查詢。 使用以下 SQL Servver 表表示例可以以模仿與許許多 SAAP R/3 表非非常類似的的數(shù)據(jù)模式式。兩個示示例查詢將將使用該此此測試表進進行分析。其目的是是說明如何何在 R/3 數(shù)據(jù)據(jù)庫服務器器環(huán)境中很很好地利用用 SQLL Serrver 索引。 示例數(shù)據(jù)以下腳本創(chuàng)創(chuàng)建名為 sapttest11 的表并并在其中加加入 1000,0000 個記記錄。第一一個名為 col11 的列沒沒有選擇性性。每一行行的 cool1 數(shù)數(shù)值是一樣
27、樣的 (000)。這是是為了模擬擬 SAPP R/33 中非常常常見的 MANDDT 列,通通常它不太太具有選擇擇性。第二二個名為 col22 的列設設計為帶有有一些選擇擇性,因為為每隔 1100 行行就插入了了一個 a 數(shù)數(shù)值。 SSQL SServeer mooduloo (%) 操操作符用于于檢測每第第 1000 行的插插入。最后后一個名為為 coll3 的列列的選擇性性極高。每每一行都有有唯一的 col33 數(shù)值。 創(chuàng)建示例數(shù)數(shù)據(jù) (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令: creatte taable sapttest11 ( ccol1 charr(4)
28、 not nulll deffaultt 0000, col22 chaar(4) nott nulll deefaullt zzzzz, cool3 iint nnot nnull, filller charr(3000) deefaullt aabc ) deeclarre ccountter iint sset nnocouunt oon seet ccountter = 1 wwhilee (ccountter Exttendeed Heelp。單單擊 Inndexees,然后后按照聯(lián)機機指示執(zhí)行行。 執(zhí)行索引更更改 (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令
29、: alterr tabble ssapteest1 dropp connstraaint saptt_c1 alteer taable sapttest11 addd connstraaint saptt_c1 PRIMMARY KEY NONCCLUSTTEREDD (cool1,ccol2,col33) crreatee cluusterred iindexx ckeey1 oon saaptesst1(ccol2) creeate indeex nkkey1 on ssapteest1(col33) 按 CTRRL + E 執(zhí)行行命令。 第二組索引引的結(jié)果改進索引的的單行取數(shù)數(shù)據(jù):se
30、electt * ffrom sapttest11 wheere ccol3 = 50000基于文本的的 ShoowPlaan 輸出出: |-Boookmaark LLookuup(BOOOKMAARK:(Bmkk10000), OBJEECT:(pubbs.dbo.saaptesst1) WITTH PRREFETTCH) |-IIndexx Seeek(OBBJECTT:(ppubs.dbbo.sapttest11.nnkey11), SEEKK:(ssapteest1.cool3=50000) ORRDEREED) 等量圖形顯顯示計劃輸輸出。 統(tǒng)計 I/O 的查查詢結(jié)果集集和數(shù)據(jù)庫庫 I
31、/OO (Quuery Anallyzerr): col1 col22 coll3 fiillerr 0000 a 55000 abc (1 rrow(ss) afffectted) Tablle ssapteest1.Scaan coount 1, llogiccal rreadss 5, physsicall reaads 00, reead-aaheadd reaads 00. Showpplan 現(xiàn)在表明明 SQLL Serrver 正在對索索引 nkkey1 使用索引引搜索而不不是索引掃掃描。索引引搜索是指指:SQLL Serrver 能夠快速速瀏覽 nnkey11 B 樹樹結(jié)構(gòu)(而
32、而不是象前前面例子中中的掃描索索引的葉級級),并使使用書簽查查找來找到到與鍵值 50000 關(guān)聯(lián)的的數(shù)據(jù)行。這一從索索引掃描到到索引搜索索的改變對對 I/OO 性能有有極大的影影響。要執(zhí)執(zhí)行查詢,僅僅需要 SSQL SServeer 數(shù)據(jù)據(jù)高速緩存存中的 55 個 II/O,而而前一個例例子中,需需要 2440 個。 改進索引的的范圍掃描描:sellect * frrom ssapteest1 wherre cool2 = a基于文本的的 ShoowPlaan 輸出出: |-Cllusteered Indeex Seeek(OOBJECCT:(pubss.ddbo.sapptestt1.cke
33、yy1), SEEEK:(sapttest11.ccol2=a) ORRDEREED) 等量圖形顯顯示計劃輸輸出。 統(tǒng)計 I/O 的查查詢結(jié)果集集和數(shù)據(jù)庫庫 I/OO (Quuery Anallyzerr): col1 col22 coll3 fiillerr 0000 a 1100 aabc 0000 aa 2000 abcc 0000 a 3300 aabc . . . 0000 a 9998000 abcc 0000 a 9999000 abcc 0000 a 11000000 abbc (11000 row(s) aaffeccted) Tabble sapttest11.Sccan
34、ccountt 1, logiical readds 488, phhysiccal rreadss 0, readd-aheead rreadss 0. Showpplan 再次表明明 SQLL Serrver 正在對索索引 ckkey1 使用索引引搜索而不不是索引掃掃描。在聚聚集索引搜搜索情況下下,不需要要進行書簽簽查找,因因為聚集索索引 B 樹的葉級級已包含表表數(shù)據(jù)。索索引掃描到到索引搜索索的改變再再次對 II/O 性性能產(chǎn)生重重大而又積積極影響。要提取 1,0000 行,僅僅需要對 SQL Servver 高高速緩沖存存儲器的 48 次次讀取,而而在前一個個例子中則則需要 44,500
35、0 個 II/O。II/O 的的數(shù)量已大大大減少,因因此,完成成該查詢不不再需要物物理磁盤 I/O,因因為所需要要的頁在 SQL Servver 數(shù)數(shù)據(jù)高速緩緩存中已經(jīng)經(jīng)有了。物物理讀取和和預讀讀取取的數(shù)字都都是零,這這就說明了了這一點。切記:預預讀讀取是是每個讀取取為 644 KB 的物理磁磁盤讀取,物物理讀取是是每個讀取取為 8 KB 的的物理磁盤盤讀取。 索引分析的的觀察與結(jié)結(jié)論從前面的例例子中可以以清楚看出出:索引設設計對 SSQL SServeer 查詢詢中的 II/O 性性能起著舉舉足輕重的的作用。范范圍掃描的的例子特別別用來說明明:在 RR/3 環(huán)環(huán)境中,還還可能有適適合于除主主
36、鍵列以外外的列的聚聚集索引的的情況。特特別是對于于要在其上上執(zhí)行報告告的大型表表來說,這這是很有可可能的。例例如,如果果大型表根根據(jù)日期列列進行報告告,但是日日期列未包包含在聚集集主鍵中,那那么對于聚聚集索引測測試日期列列的使用就就非常有用用。 在 SQLL Serrver 7.0 中,聚集集索引中所所包含的列列和字節(jié)越越多,該特特定表的非非聚集索引引越大。這這是因為該該表的聚集集索引和非非聚集索引引都使用構(gòu)構(gòu)成聚集索索引的列。非聚集索索引包含群群集鍵并使使用群集鍵鍵定位 rrowdaata。如如果表上沒沒有聚集索索引,則此此情況不適適用。相反反,在這種種情況下表表是作為堆堆集來管理理的。有關(guān)
37、關(guān)詳細信息息,請參見見 SQLL Serrver 聯(lián)機圖書書。 既然非聚集集索引在非非聚集 BB 樹結(jié)構(gòu)構(gòu)中包含群群集鍵,要要注意兩種種影響。第第一,一定定要保持較較小的聚集集索引規(guī)模模,因為它它不僅影響響聚集索引引的大小和和性能,而而且還影響響該表中的的所有非聚聚集索引的的大小和性性能。第二二,一定要要記住非聚聚集索引包包含群集鍵鍵,因為在在非聚集索索引包含滿滿足查詢(群群集鍵除外外)所需的的所有列的的情況下,查查詢處理器器可以使用用鍵值列幫幫助涵蓋查查詢。 涉及群集鍵鍵的涵蓋查查詢示例以下是一個個簡單的例例子,它說說明了在群群集鍵僅包包含非聚集集索涵蓋給給定查詢所所需的其它它信息的情情況下
38、,查查詢處理器器將非聚集集索引用作作涵蓋索引引,并無須須使用書簽簽查找從表表中提取數(shù)數(shù)據(jù)。有關(guān)關(guān)涵蓋查詢詢與索引設設計的詳細細信息,請請參見“MMicroosoftt SQLL Serrver 7.0 性能優(yōu)化化指南”。 建立以下表表 (Quuery Anallyzerr) 在查詢窗口口鍵入以下下命令: creatte taable sapttest22 (cool1 iint, col22 chaar(4) deffaultt a, fiillerr chaar(3000) ddefauult zzzzz) ddeclaare counnter int set couunterr = 11
39、whiile (couunterr = 10000) beegin inseert ssapteest2 (coll1) vvaluees (counnter) sett coounteer = couunterr + 11 endd inssert sapttest22 vallues (10001,ssap,R/33) ccreatte cllusteered indeex saap_CKK1 onn sapptestt2(cool1) creaate nnoncllusteered indeex saap_NCCK1 oon saaptesst2(ccol2) 按 CTRRL + E 執(zhí)
40、行命令令。 顯示并比較較以下兩種種查詢計劃劃 (Quuery Anallyzerr) 在查詢窗口口鍵入以下下命令: selecct * fromm sapptestt2 whhere col22 = sap sellect col11,coll2 frrom ssapteest2 wherre cool2 = saap 分別選擇每每個查詢,然然后按 CCTRL + L 顯示圖形形顯示計劃劃。 使用第二個個查詢不需需要書簽查查找,因為為非聚集索索引暗含群群集鍵,因因此涵蓋了了查詢。 當解決 RR/3 程程序長期存存在的問題題時,要牢牢記一種潛潛在的操作作方法,即即使用 ssp_reecomppi
41、le 標記存儲儲過程以便便快速重編編譯。spp_reccompiile 命命令執(zhí)行占占用時間極極少而且很很有用。ssp_reecomppile 命令迅速速標記存儲儲過程,以以便為存儲儲過程生成成新的查詢詢計劃,它它反映表的的數(shù)據(jù)、索索引及統(tǒng)計計的最新情情況。 備注 在大大多數(shù) RR/3 正正常操作情情況下,沒沒有必要運運行 spp_reccompiile,因因為在對其其有利的情情況下,SSQL SServeer 會自自動重新編編譯存儲過過程。但是是在 R/3 環(huán)境境中也有過過這樣的情情況,即 SAP 和 Miicrossoft 已發(fā)現(xiàn)在在有長期存存在且性能能不良的更更新和批處處理過程運運行的表
42、中中運行spp_reccompiile 是是很有好處處的。 使用 spp_reccompiile 最最簡便的方方法之一是是將表名稱稱作為命令令參數(shù)提交交。這樣就就會為重新新編譯標記記所有與表表名稱關(guān)聯(lián)聯(lián)的存儲過過程。例如如,如果 CCMSS 顯示在在 VBRRP 表上上操作的更更新過程的的執(zhí)行時間間特別長,那那么就有必必要在該表表上運行 sp_rrecommpilee。 執(zhí)行 spp_reccompiile 的的示例 (Querry Annalyzzer) 鍵入 exxec ssp_reecomppile VBRRP。 按 CTRRL + E 執(zhí)行行命令。 SQL SServeer 7.0 提
43、供供列和索引引統(tǒng)計的自自動生成與與維護。統(tǒng)統(tǒng)計輔助查查詢處理器器確定最佳佳查詢計劃劃。默認情情況下,為為所有索引引創(chuàng)建了統(tǒng)統(tǒng)計,并且且在為列統(tǒng)統(tǒng)計可能有有用和優(yōu)化化器可能需需要對其進進行推測的的列編譯查查詢時,SSQL SServeer 會自自動創(chuàng)建單單列統(tǒng)計。 為避免對未未使用的統(tǒng)統(tǒng)計的長期期維護,SSQL SServeer 為自自動創(chuàng)建的的統(tǒng)計(僅僅指那些不不是索引創(chuàng)創(chuàng)建的附帶帶統(tǒng)計)制制定有效時時間。在幾幾次自動更更新之后,列列統(tǒng)計不再再被更新,而而是被丟棄棄。如果以以后需要,可可以再次創(chuàng)創(chuàng)建。統(tǒng)計計更新與創(chuàng)創(chuàng)建間的開開銷上沒有有什么大的的差異。此此有效時間間的制定不不影響用戶戶創(chuàng)建的統(tǒng)
44、統(tǒng)計。 為使性能最最佳,建議議使用自動動統(tǒng)計。統(tǒng)統(tǒng)計的自動動創(chuàng)建和更更新是 SSQL SServeer 7.0 的默默認配置。該建議不不適用于表表 VBHHDR、VVBMODD 和 VVBDATTA。對于于這些表,建建議關(guān)閉自自動統(tǒng)計。從本質(zhì)上上講,VBBHDR、VBMOOD 和 VBDAATA 的的大小極不不穩(wěn)定,也也就是說它它們可能頻頻繁地從空空變成非常常大,然后后又變回空空。R/33 僅通過過主鍵訪問問這些表。這些表的的其它統(tǒng)計計不會有什什么用,因因為使用主主鍵的同一一查詢計劃劃也用于每每個訪問?;谏鲜鍪鲞@些原因因,在這些些表中關(guān)閉閉自動統(tǒng)計計功能是有有利的。 以下命令集集將防止以以后
45、在 VVBHDRR、VBMMOD 和和 VBDDATA 表上的統(tǒng)統(tǒng)計生成。 要關(guān)閉 VVBHDRR、VBMMOD 和和 VBDDATA 的自動統(tǒng)統(tǒng)計 (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令: exec sp_aautosstatss VBHHDR,OFF exeec spp_auttostaats VVBMODD,OFFF eexec sp_aautosstatss VBDDATA,OFFF 按 CTRRL + E 執(zhí)行行命令。 VBHDRR、VBMMOD 和和 VBDDATA 表上的現(xiàn)現(xiàn)有統(tǒng)計可可以通過以以下命令從從數(shù)據(jù)庫中中刪除。 除去現(xiàn)有統(tǒng)統(tǒng)計 (QQuer
46、yy Anaalyzeer) 使用 spp_hellpinddex 命命令確定要要除去的統(tǒng)統(tǒng)計名。例例如,要顯顯示任何 VBMOOD 上的的現(xiàn)有統(tǒng)計計名稱,在在查詢窗口口中鍵入下下列命令: exec sp_hhelpiindexx VBMMOD 按 CTRRL + E 執(zhí)行行命令。查查詢分析器器結(jié)果窗格格中的 iindexx_namme 列將將顯示所有有索引與統(tǒng)統(tǒng)計的名稱稱。 在 droop sttatissticss 命令中中使用統(tǒng)計計名稱。例例如,要除除去名為 _WA_Sys_VBELLN_0AAEA100A3 的的統(tǒng)計,在在查詢窗口口中鍵入以以下命令: drop stattistiics
47、 VVBRP._WA_Sys_VBELLN_0AAEA100A3 按 CTRRL + E 執(zhí)行行命令。 對表 VBBMOD、VBHDDR 和 VBDAATA 上上的所有統(tǒng)統(tǒng)計重復執(zhí)執(zhí)行 1 至 4 步驟。 DBCC SHOWWCONTTIG 命命令用于評評估表中出出現(xiàn)的物理理碎片(如如果有)等等級。 運行 DBBCC SSHOWCCONTIIG 的示示例 (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令: declaare id iint sselecct iid = objeect_iid(ssapteest1) dbbcc sshowccontiig (id) 按 CT
48、RRL + E 執(zhí)行命令令。 應該出現(xiàn)以以下輸出: DBCC SHOWWCONTTIG sscannning sapptestt1 ttablee. Tablle:ssapteest1 (93335788364); inndex ID:11, daatabaase IID: 55 TABBLE llevell scaan peerforrmed. - PPagess Scaannedd: 41167 - Exttentss Scaannedd: 521 - Exxtentt Swiitchees: 5200 - AAvg.PPagess perr Exttent: 8.00 - SScan D
49、enssity Besst Coount:Actuual CCountt: 1000.000% 5521:5521 - Loogicaal Sccan FFragmmentaationn : 11.21% - Exxtentt Scaan Frragmeentattion : 0.996% - Avgg.Byttes FFree per Pagee: 1198.66 - AAvg.PPage Denssity (fulll): 97.55% DBCCC exeecutiion ccomplletedd.If DBCCC priintedd errror mmessaages, conntact
50、t youur syystemm admminisstrattor. Scan Denssity 和 Exttent Scann Fraagmenntatiion 有有助于評定定磁盤上表表的組織情情況。百分分之百 SScan Denssity 是最佳的的可能值,因因為它表明明使用中的的擴展的最最理想數(shù)量量(例如,每每個擴展八八個頁面的的情況下,擴擴展完全得得到利用)。Exteent SScan Fraggmenttatioon 通過過表明表關(guān)關(guān)聯(lián)的擴展展是否曾經(jīng)經(jīng)物理移動動至磁盤序序列之外,從從而提供頁頁拆分的附附加信息。Exteent SScan Fraggmenttatioon 僅在在表定
51、義了了聚集索引引的情況下下才是有用用的信息。 Avg. Pagee Dennsityy (fuull) 以百分數(shù)數(shù)表示每個個 SQLL Serrver 數(shù)據(jù)頁上上的平均數(shù)數(shù)據(jù)量。有有時,這個個百分數(shù)也也稱為數(shù)據(jù)據(jù)頁的充滿滿度。高的的百分數(shù)說說明每個 8 KBB 讀取帶帶入 SQQL Seerverr 高速緩緩沖存儲器器的數(shù)據(jù)多多??偠匝灾?,高的的百分數(shù)說說明高速緩緩存將包含含更多的有有用信息。舉個例子子,考慮一一下如果 DBCCC SHOOWCONNTIG 顯示在您您的數(shù)據(jù)庫庫中有好幾幾個平均頁頁密度為 50% 的表的情情況。如果果這些表含含有檢索的的多數(shù)數(shù)據(jù)據(jù),那么 SQL Servver
52、 高高速緩沖存存儲器將包包含多數(shù)僅僅包含 550% 有有用數(shù)據(jù)的的數(shù)據(jù)頁。這就是說說 1 GGB 高速速緩沖存儲儲器僅包含含 5000 MB SQL Servver 數(shù)數(shù)據(jù)。如果果將讀取到到高速緩沖沖存儲器的的所有表的的平均頁面面密度提高高到接近 100%,那么一一個 1 GB 的的高速緩沖沖存儲器將將包含接近近 1 GGB 的 SQL Servver 數(shù)數(shù)據(jù),這樣樣就好多了了。 如果訪問某某表的查詢詢的應答時時間增長到到無法忍受受的程度,則則在該表上上運行 DDBCC SHOWWCONTTIG 命命令。如果果 Avgg. Paages per Exteent 大大大小于 8.0, Exten
53、t Scan Fragmentation大于 10-20%或 Avg. Page Density (full) 大大小于 100% 時,有必要考慮重建表的聚集索引,以便將表中的數(shù)據(jù)物理重排到物理連續(xù)的擴展中。重建聚集索引還提供了選擇更完整的頁面填充的選項,以便每 8 KB 頁壓縮更多的數(shù)據(jù)。 磁盤上有經(jīng)經(jīng)過良好壓壓縮而連續(xù)續(xù)的數(shù)據(jù)對對 I/OO 性能是是有利的,因因為 SQQL Seerverr 可以在在從此表中中提取數(shù)據(jù)據(jù)時利用有有序 I/O(比無無序磁盤 I/O 快得多)并并在每次讀讀取時將最最多的 SSQL SServeer 有用用數(shù)據(jù)帶入入高速緩沖沖存儲器。 FillFFactoor
54、是 CREAATE IINDEXX 語句的的可用選項項,它允許許控制索引引葉級的充充滿度。表表聚集索引引的葉級是是表的數(shù)據(jù)據(jù)頁,因此此使用 FFillFFactoor 選項項可以控制制使用聚集集索引的表表的數(shù)據(jù)頁頁的充滿度度。 FillFFactoor 的默默認值為零零。默認值值對表內(nèi)所所有數(shù)據(jù)頁頁都執(zhí)行 100% 填充。Micrrosofft 的 IT 機機構(gòu)一直在在其 SAAP R/3 環(huán)境境下的多數(shù)數(shù) SQLL Serrver 表中使用用 FilllFacctor 的默認值值,性能極極好。建議議將 FiillFaactorr 的默認認值用做 R/3 數(shù)據(jù)庫服服務器測試試的起點。 Fill
55、FFactoor 要牢牢記的主要要關(guān)系是應應處理好將將最大量的的數(shù)據(jù)打包包進每個數(shù)數(shù)據(jù)與索引引頁的 II/O 性性能與避免免頁拆分的的性能優(yōu)勢勢之間的關(guān)關(guān)系。當需需要將數(shù)據(jù)據(jù)插入某頁頁,但該頁頁已滿時,就就會發(fā)生頁頁拆分。此此時,必須須使用新頁頁,且數(shù)據(jù)據(jù)在舊頁和和新頁之間間重組。SSQL SServeer 7.0 增強強型存儲結(jié)結(jié)構(gòu)使頁拆拆分操作比比 SQLL Serrver 6.5 中的效率率高得多;對頁拆分分的性能處處罰也沒有有那么多。這就解釋釋了為什么么默認 FFillFFactoor 設置置是一個好好的起點的的原因。如如果 DBBCC SSHOWCCONTIIG 命令令報告表中中出現(xiàn)
56、大量量物理碎片片,而且表表的響應時時間很差,那那么應該重重建該表上上的聚集索索引以使索索引 B 樹結(jié)構(gòu)保保持最佳形形態(tài)。 要重建主鍵鍵,需要 CREAATE IINDEXX 命令的的 DROOP_EXXISTIING 選選項。它還還為任一索索引的重建建提供了增增強性能。以下示例例假定前面面描述的原原始sapptestt1 表中中的索引正正在重建。 重建聚集主主鍵的示例例 (Quuery Anallyzerr) 在查詢窗口口鍵入以下下命令: creatte unniquee cluusterred iindexx sappt_c11 on sapttest22(coll1,cool2,ccol3
57、) witth drrop_eexistting 按 CTRRL + E 執(zhí)行行命令。 重建非聚集集主鍵的示示例 (QQueryy Anaalyzeer) 在查詢窗口口鍵入以下下命令: creatte unniquee inddex ssapt_c1 oon saaptesst2(ccol1,col22,coll3) wwith dropp_exiistinng 按 CTRRL + E 執(zhí)行行命令。 重建聚集索索引的示例例 (Quuery Anallyzerr) 在查詢窗口口鍵入以下下命令: creatte cllusteered indeex ckkey1 on ssapteest2(col
58、22) wiith ddrop_exisstingg 按 CTRRL + E 執(zhí)行行命令。 會有一些插插入活動頻頻率高的 R/3 環(huán)境,且且有必要測測試對數(shù)據(jù)據(jù)和索引頁頁稍低百分分率填充的的使用,以以便將頁拆拆分情況控控制到最少少。有關(guān)在在 CREEATE INDEEX 語句句中使用FFillFFactoor 的語語法的詳細細信息,請請參見 SSQL SServeer 聯(lián)機機圖書。 文件和文件件組設計 建議將 SSQL SServeer 文件件的大小定定為每個 RAIDD 數(shù)組至至少有三個個大小相等等的 SQQL Seerverr 文件,并并且這些文文件的大小小應設置為為它們預期期能夠增長長到的最大大值。使用用 auttogroow 處理理調(diào)整大小小的緊急情情況。在確確定需要更更多的 II/O 處處理能力且且需要將新新的 RAAID 數(shù)數(shù)組聯(lián)機時時,定義三三個文件有有助于加快快數(shù)據(jù)重新新分發(fā)的速速度。要將將數(shù)據(jù)移動動至新的數(shù)數(shù)組,可以以使用 AALTERR DATTABASSE 命令令修改數(shù)據(jù)據(jù)庫,以便便將一個文文件放在新新的 RAAID 數(shù)數(shù)組中。然然后可以關(guān)關(guān)閉 SQQL Seerverr,可以迅迅速將該文文件移至新
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版鍋爐設備維護保養(yǎng)與能源審計合同范本3篇
- 2025版內(nèi)河水路危險品運輸合同及應急救援協(xié)議3篇
- 二零二五年度挖機操作技能競賽贊助合同
- 1 如何合理選擇抗凝藥物
- 二零二五版民房建筑項目施工合同履約監(jiān)督協(xié)議范本4篇
- 2018年稅務稽查風險防范及企業(yè)應對策略
- 2025年度個人房屋買賣價格調(diào)整及支付合同2篇
- 二零二五年度戶外廣告牌發(fā)布與社區(qū)宣傳合作合同范本3篇
- 2025年度農(nóng)用土地托管服務與機械租賃合同4篇
- 2025年度個人二手房買賣協(xié)議書范本:房屋交易環(huán)保評估合同2篇
- 2025貴州貴陽市屬事業(yè)單位招聘筆試和高頻重點提升(共500題)附帶答案詳解
- 2024年住院醫(yī)師規(guī)范化培訓師資培訓理論考試試題
- 期末綜合測試卷(試題)-2024-2025學年五年級上冊數(shù)學人教版
- 招標采購基礎知識培訓
- 2024年廣東省公務員錄用考試《行測》試題及答案解析
- 五年級口算題卡每天100題帶答案
- 結(jié)構(gòu)力學本構(gòu)模型:斷裂力學模型:斷裂力學實驗技術(shù)教程
- 2024年貴州省中考理科綜合試卷(含答案)
- 無人機技術(shù)與遙感
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- 黑色素的合成與美白產(chǎn)品的研究進展
評論
0/150
提交評論