資源描述:
《簡(jiǎn)單談?wù)剆ybase數(shù)據(jù)庫(kù)的性能優(yōu)化》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、在一個(gè)大型的數(shù)據(jù)庫(kù)中,性能成為人們關(guān)注的焦點(diǎn)之一,如何讓數(shù)據(jù)庫(kù)高效有效的運(yùn)行成為廣大數(shù)據(jù)庫(kù)管理人員和開發(fā)人員必須要考慮的問(wèn)題。性能是一個(gè)應(yīng)用或多個(gè)應(yīng)用在相同的環(huán)境下運(yùn)行時(shí)對(duì)效率的衡量。性能常用響應(yīng)時(shí)間和工作效率來(lái)表示。響應(yīng)時(shí)間是指完成一個(gè)任務(wù)花費(fèi)的時(shí)間,可以從以下三方面來(lái)減少響應(yīng)時(shí)間:·減少競(jìng)爭(zhēng)和等待的次數(shù),尤其是磁盤讀寫等待次數(shù)·利用更快的部件·減少利用資源所需的時(shí)間絕大多數(shù)性能的獲得來(lái)自于優(yōu)秀的數(shù)據(jù)庫(kù)設(shè)計(jì)、精確的查詢分析和適當(dāng)?shù)乃饕W詈眯阅艿墨@得能夠通過(guò)確立優(yōu)秀的數(shù)據(jù)庫(kù)設(shè)計(jì),在開發(fā)時(shí)學(xué)會(huì)使用SQLServer查詢優(yōu)化器來(lái)實(shí)現(xiàn)。為了取得更好的數(shù)據(jù)庫(kù)
2、性能,我們就需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化,減少系統(tǒng)資源的競(jìng)爭(zhēng),如對(duì)數(shù)據(jù)cache,過(guò)程cache,系統(tǒng)資源和CPU的競(jìng)爭(zhēng)。在SQLServer中,有如下優(yōu)化層次:·應(yīng)用層——大部分性能的獲得來(lái)自于對(duì)你的SQL應(yīng)用中查詢的優(yōu)化,這必須是以好的數(shù)據(jù)庫(kù)設(shè)計(jì)為基礎(chǔ)的。·數(shù)據(jù)庫(kù)層——應(yīng)用共享在數(shù)據(jù)庫(kù)層中的資源,這些資源包括硬盤,事務(wù)日志和數(shù)據(jù)cache。·服務(wù)器層——在服務(wù)器層有許多共享的資源,包括數(shù)據(jù)高速緩存,過(guò)程高速緩存,鎖,CPU等。·設(shè)備層——指的是存儲(chǔ)數(shù)據(jù)的磁盤及其控制器,在這一層,你應(yīng)尤其關(guān)注磁盤的I/O?!ぞW(wǎng)絡(luò)層——指連接用戶和SQLServer的網(wǎng)絡(luò)?!?/p>
3、硬件層——指可利用的CPU?!げ僮飨到y(tǒng)層——理想地,SQLServer是一臺(tái)機(jī)器的唯一主要應(yīng)用,它必須和操作系統(tǒng)以及其他sybase軟件,如BackupServer或SQLServerMonitor共享處理器、內(nèi)存以及其他資源。在大多數(shù)情況下面,我們是對(duì)應(yīng)用層進(jìn)行優(yōu)化,,因?yàn)閷?duì)應(yīng)用性能的優(yōu)化是大家最樂(lè)于接受的功能,其結(jié)果能被觀測(cè)及檢驗(yàn),查詢的性能是SQL應(yīng)用的整個(gè)性能的一個(gè)關(guān)鍵。應(yīng)用層上的問(wèn)題包括以下內(nèi)容:·決策支持VS.和在線事務(wù)處理(OLTP)需要不同的性能策略·事務(wù)設(shè)計(jì)能夠減少并發(fā),因?yàn)殚L(zhǎng)的事務(wù)保持占用鎖,也就減少了其他用戶對(duì)相關(guān)數(shù)據(jù)的存取·關(guān)聯(lián)
4、一致性對(duì)數(shù)據(jù)修改需要join操作·支持Select操作的索引增加了修改數(shù)據(jù)的時(shí)間·為了安全而設(shè)立的審計(jì)限制了性能在應(yīng)用層優(yōu)化的選項(xiàng)包括:·遠(yuǎn)程處理或復(fù)制處理能夠把決策支持從OLTP機(jī)器中分離出來(lái)·利用存儲(chǔ)過(guò)程來(lái)減少編譯時(shí)間和網(wǎng)絡(luò)的利用·利用最少量的鎖去滿足你的應(yīng)用需要數(shù)據(jù)庫(kù)層的問(wèn)題包括:·建立備份和恢復(fù)方案·在設(shè)備上分布存儲(chǔ)數(shù)據(jù)·審計(jì)操作影響性能;僅審計(jì)你所需的·日常的維護(hù)活動(dòng)將導(dǎo)致性能的降低和導(dǎo)致用戶不能操作數(shù)據(jù)庫(kù)表在數(shù)據(jù)庫(kù)層上優(yōu)化選擇包括:·利用事務(wù)日志的閥值來(lái)自動(dòng)轉(zhuǎn)儲(chǔ)事務(wù)日志防止其超出使用空間·在數(shù)據(jù)段中用閥值來(lái)監(jiān)視空間的使用·利用分區(qū)來(lái)加速數(shù)據(jù)
5、的裝入·對(duì)象的定位以避免硬盤的競(jìng)爭(zhēng)·把重要表和索引放入cache中,保證隨時(shí)取得服務(wù)器層的問(wèn)題有:·應(yīng)用的類型——服務(wù)器是支持OLTP還是DSS,或者兩者都支持·所支持的用戶數(shù)影響優(yōu)化決策——隨著用戶數(shù)的增加,對(duì)資源的競(jìng)爭(zhēng)會(huì)發(fā)生改變·網(wǎng)絡(luò)負(fù)荷·當(dāng)用戶數(shù)和事務(wù)數(shù)達(dá)到一定的數(shù)量時(shí)復(fù)制服務(wù)器或其他分布式處理是一個(gè)解決的方法服務(wù)器層的優(yōu)化的選項(xiàng)包括:·優(yōu)化內(nèi)存——一個(gè)關(guān)鍵的配置參數(shù)和其他方面的參數(shù)·決策是客戶端處理還是服務(wù)器端處理——有些處理能在客戶端進(jìn)行嗎·配置cache的大小和I/O的大小·增加多個(gè)CPU·為空閑時(shí)間排定批處理任務(wù)和生成報(bào)表·工作負(fù)荷發(fā)生改
6、變,重新配置特定參數(shù)·決定是否可能把DSS移到另一個(gè)SQL服務(wù)器中設(shè)備層設(shè)備層的問(wèn)題包括:·主設(shè)備、包含用戶數(shù)據(jù)庫(kù)的設(shè)備,用戶數(shù)據(jù)設(shè)備,或數(shù)據(jù)庫(kù)日志是否要鏡像·怎樣在設(shè)備之間分布系統(tǒng)數(shù)據(jù)庫(kù)、用戶數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)日志·為獲得對(duì)堆表插入操作的高性能,是否有必要進(jìn)行分區(qū)設(shè)備層上優(yōu)化的選項(xiàng)包括:·用多個(gè)中等大小的設(shè)備及多個(gè)控制器可能比用少量的大設(shè)備有更好的I/O性能·分布數(shù)據(jù)庫(kù),表和索引以在不同的設(shè)備上進(jìn)行I/O裝載網(wǎng)絡(luò)層實(shí)際上,SQLServer的所有用戶都是通過(guò)網(wǎng)絡(luò)存取他們的數(shù)據(jù)。網(wǎng)絡(luò)層上的主要問(wèn)題有:·網(wǎng)絡(luò)的流量·網(wǎng)絡(luò)的瓶頸·網(wǎng)絡(luò)的速度網(wǎng)絡(luò)層上優(yōu)化的選項(xiàng)包
7、括:·配置包的大小,以使其與應(yīng)用的需要相匹配·配置子網(wǎng)·分隔出繁忙的網(wǎng)絡(luò)運(yùn)用·創(chuàng)建一個(gè)高容量的網(wǎng)絡(luò)·配置多個(gè)網(wǎng)絡(luò)引擎·更好地設(shè)計(jì)應(yīng)用,限制所需的網(wǎng)絡(luò)傳輸硬件層在硬件層上的問(wèn)題包括·CPU的效率·磁盤的存取:控制器和磁盤·磁盤備份·內(nèi)存的使用在硬件層上優(yōu)化的選項(xiàng)包括:·增加CPU以適應(yīng)工作負(fù)荷·配置調(diào)度程序以提高CPU利用率·遵循多處理器應(yīng)用設(shè)計(jì)指導(dǎo)以減少競(jìng)爭(zhēng)·配置多個(gè)數(shù)據(jù)cache操作系統(tǒng)層操作系統(tǒng)層的主要問(wèn)題有:·文件系統(tǒng)——是否被SQLServer獨(dú)占使用·內(nèi)存管理——精確估算操作系統(tǒng)和其他程序的內(nèi)存占用·CPU的利用——整個(gè)系統(tǒng)共有多少處理器可用
8、?有多少分配給SQLServer在操作系統(tǒng)層優(yōu)化的選項(xiàng)包括:·網(wǎng)絡(luò)接口·在文件和原始分區(qū)之間選