<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            淺談sqlserver性能調優(yōu)

            發(fā)表于:2013-04-10來(lái)源:Csdn作者:dinglang_2009點(diǎn)擊數: 標簽:性能調優(yōu)SQLServer
            相信不少的朋友,無(wú)論是做開(kāi)發(fā)、架構的,還是DBA等,都經(jīng)常聽(tīng)說(shuō)“調優(yōu)”這個(gè)詞。說(shuō)起“調優(yōu)”,可能會(huì )讓很多技術(shù)人員心頭激情澎湃,也可能會(huì )讓很多人感覺(jué)苦惱。當然,也有很多人對此不屑一顧,因為并不是每個(gè)人接觸到的項目都很大,也不是每個(gè)人做的項目都

              相信不少的朋友,無(wú)論是做開(kāi)發(fā)、架構的,還是DBA等,都經(jīng)常聽(tīng)說(shuō)“調優(yōu)”這個(gè)詞。說(shuō)起“調優(yōu)”,可能會(huì )讓很多技術(shù)人員心頭激情澎湃,也可能會(huì )讓很多人感覺(jué)苦惱。當然,也有很多人對此不屑一顧,因為并不是每個(gè)人接觸到的項目都很大,也不是每個(gè)人做的項目都對性能要求很高。

              在主流的企業(yè)級開(kāi)發(fā)和互聯(lián)網(wǎng)應用中,數據庫的重要性是不言而喻的,而數據庫的性能對于整個(gè)系統的性能而言也是至關(guān)重要的,這里無(wú)庸贅述。

              sqlserver的性能調優(yōu),其實(shí)是個(gè)很寬廣的話(huà)題。坦白講,想從概念到實(shí)踐的完全講清楚并掌握透徹,可能至少需要幾本書(shū)的內容。本文只是一個(gè)概念級的總結,希望讀者能對此有新的認識,在調優(yōu)路上有所幫助。如果感興趣的朋友很多,后續可能會(huì )分享一些實(shí)戰經(jīng)驗。

              首先搞清楚,性能調優(yōu)的目標

              從最直觀(guān),最常見(jiàn)的角度來(lái)講,主要包含如下兩點(diǎn):

              優(yōu)化響應時(shí)間

              何為“優(yōu)化響應時(shí)間” 呢?說(shuō)的通俗點(diǎn),就是經(jīng)過(guò)調優(yōu)后,執行查詢(xún)、更新等操作的時(shí)候,數據庫的反應速度更快,花費的時(shí)間更少。

              比較常見(jiàn)的,以前執行某條sql查詢(xún)語(yǔ)句,可能需要3秒鐘,加了索引后,1秒鐘不到就搞定了。加索引,這也是最典型最"廉價(jià)"的優(yōu)化手段。

              在做“優(yōu)化響應時(shí)間”時(shí),需要了解:用戶(hù)環(huán)境,程序,環(huán)境,用戶(hù)和數據等方面的知識。

              優(yōu)化吞吐量

              說(shuō)起“吞吐量”,那就要想到“并發(fā)”了。其實(shí)就是“同時(shí)處理請求”的能力。如何提高數據庫"抗并發(fā)"的能力呢?首先要了解sqlserver是如何訪(fǎng)問(wèn)數據的,如何控制并發(fā)訪(fǎng)問(wèn)的(事務(wù)隔離級別,鎖等),如何與底層操作系統進(jìn)行交互的,還要了解“多線(xiàn)程、進(jìn)程”等方面的知識。

              比較常見(jiàn)的手段,通過(guò)降低事務(wù)隔離級別(一定程度地犧牲數據一致性等),這種“軟手段”通常會(huì )起到很好的效果。其次,單臺DB Server達到一定瓶頸后,可以通過(guò)“集群”等方式,實(shí)現請求的“負載均衡”的,來(lái)達到“抗并發(fā)”的目的,效果也是立竿見(jiàn)影的。

              性能調優(yōu)的方法論--迭代

              基線(xiàn)

              通俗點(diǎn)講,就是用來(lái)計算或者比較的標準。通常以當前系統性能為基準,或者以匹配系統性能為基準。指各個(gè)組件發(fā)揮到最大。

              成本

              用來(lái)升級,更換等提升組件性能時(shí)的時(shí)間,金錢(qián),勞力等等。

              基線(xiàn)的定義,以用戶(hù)期望值為基礎,可能會(huì )涉及以下因素

              以往的經(jīng)驗,應用程序的基準,業(yè)界的標準,以前版本的情況

              基線(xiàn)的表示方式,包括:每秒完成的批處理(作業(yè)),每秒傳輸量,每秒數據量,磁盤(pán)掃描時(shí)間等等

              分析影響性能的因素:

              數據庫設計(是否復合范式,是否合理歸檔、分區、分表等)

              軟件系統 (操作系統優(yōu)化,數據庫系統的配置,資源的規劃和監控等)

              硬件基礎架構 (設備規格,硬件性能,負載均衡,容災等)

              Sql語(yǔ)句的寫(xiě)法、索引和統計信息,事務(wù)和鎖,應用程序訪(fǎng)問(wèn)代碼(連接過(guò)多、頻繁開(kāi)關(guān)等)

              性能調優(yōu)的順序:

              從左往右,從技術(shù)難度、成本、實(shí)效去考慮

              DETECT 方法

              發(fā)現問(wèn)題、探究原因、提供可能的解決方法、執行最有可能的解決方案、確認是否成功解決(如果沒(méi)有,重復前面的步驟)、完成其余的工作

              DETECT方法論 中的這些工作細分起來(lái),會(huì )有很多,這里暫時(shí)不做過(guò)多描述。具體調優(yōu)的步驟、性能調優(yōu)工具的使用,下篇文章繼續。

            原文轉自:http://blog.csdn.net/dinglang_2009/article/details/8682412

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>