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