<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        SQLSERVER數據庫性能的的基本

        來源:懂視網 責編:小采 時間:2020-11-09 07:52:51
        文檔

        SQLSERVER數據庫性能的的基本

        SQLSERVER數據庫性能的的基本:SQLSERVER 數據庫性能的基本 很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能 比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器 做數據庫服務器的那臺服務器性能要相對較好,磁盤,
        推薦度:
        導讀SQLSERVER數據庫性能的的基本:SQLSERVER 數據庫性能的基本 很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能 比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器 做數據庫服務器的那臺服務器性能要相對較好,磁盤,

        SQLSERVER 數據庫性能的基本 很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能 比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器 做數據庫服務器的那臺服務器性能要相對較好,磁盤,

        SQLSERVER 數據庫性能的基本

        很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能

        比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器

        做數據庫服務器的那臺服務器性能要相對較好,磁盤,內存,CPU等等,

        那么在選用其中某一臺服務器作為數據庫服務器之前需要測試每一臺服務器的性能

        并且需要設置一些硬件的參數,例如設置磁盤控制器的參數,參考文章:Writeback和Writethrough區別

        那么具體怎麼測試呢?怎麼得出測試指標呢?

        大家可以參考這篇文章:SQL Server Database Engine Performance Tuning Basics


        正文

        隨著市場份額的SQL Server的發展隨著時間的推移,有越來越多的對SQL服務器性能調優的需求。

        有不同的團隊和個人采用各種各樣的方法提高SQLSERVER服務器的性能,

        而且我認為這些記錄SQLSERVER troubleshooting 的基本步驟和提高各種程序性能的文檔對SQLSERVER社區是有意義的

        磁盤

        為了SQLSERVER能有效運行,監控和優化SQLSERVER的磁盤子系統是一個重要的方面

        我們需要非常明確磁盤的性能需求

        Avg. Disk Sec/Read 這個計數器是指每秒從磁盤讀取數據的平均值

        下面的列表顯示這個計數器值的范圍,并指出這個計數器所處范圍的意思

        少于 10 ms - 非常好
        在 10 - 20 ms 之間- 還可以
        在 20 - 50 ms 之間- 慢,需要關注
        大于 50 ms –嚴重的 I/O 瓶頸

        磁盤性能測試工具

        (1)CrystalDiskMark

        (2)HDTUNE 硬盤檢測修復工具

        (3)ATTO Disk Benchmark

        辨別I/O瓶頸

        PhysicalDisk Object:Avg. Disk Queue:所選物理磁盤在取樣期間被排隊的磁盤讀寫請求平均值

        如果你的磁盤隊列長度經常超出SQLSERVER磁盤使用峰值的2倍,那意味著可能有I/O瓶頸了


        Avg. Disk Sec/Read:每秒從磁盤讀取數據的平均值

        Avg. Disk Sec/Write:寫入數據到磁盤的平均時間,Avg. Disk Sec/Read參考指標

        Physical Disk:%Disk Time磁盤時間是所選磁盤驅動器繁忙處理讀寫請求時所花時間的百分比,一個指標就是如果這個值大于50%,那么就存在I/O瓶頸

        Avg. Disk Reads/Sec:在磁盤上的讀操作的比率。確保這個數字小于磁盤吞吐量的85%。當這個值超過85%磁盤訪問時間會以指數式增長

        Avg. Disk Writes/Sec c:在磁盤上的寫操作的比率。確保這個數字小于磁盤吞吐量的85%。當這個值超過85%磁盤訪問時間會以指數式增長

        對于更多的信息,可以參考“如何創建性能計數器集”:http://technet.microsoft.com/en-us/library/cc722148.aspx

        磁盤驅動器的位置:

        為了不同的目的,你需要使用不同的驅動器來存放下面的東西
        獨立的磁盤延時需求:
        數據庫大于15ms

        事務日志大于2ms

        Tempdb數據庫大于2ms

        磁盤速度的優先級

        意思是說,Tempdb放在單獨的物理磁盤,事務日志文件放在單獨的物理磁盤,數據文件放在單獨的物理磁盤,操作系統放在單獨的物理磁盤,

        數據庫備份文件放在單獨的物理磁盤

        一般我們的做法:不可能有那么多單獨的物理磁盤,一般就是做了磁盤陣列的存儲

        C盤放操作系統文件

        D盤放數據文件和事務日志文件 和Tempdb數據文件和Tempdb日志文件

        E盤放數據庫備份文件

        當格式化磁盤的時候,對于要存放SQLSERVER數據文件和日志文件的磁盤,盡量不要使用默認的磁盤分配單元


        使用64k 簇大小 Allocation Unit 來格式化磁盤,至于為什麼大家可以看一下這篇文章:如何用Procmon.exe來監視SQLSERVER的logwrite大小


        殺毒軟件

        殺毒軟件會對SQLSERVER的一些功能產生問題,使用殺毒軟件的排除功能將數據庫的文件排除在掃描的范圍外是很重要的(放入殺軟的掃描例外里)

        下面的文件類型是需要排除在外的

        *.mdf, *.ndf, *.ldf, *.bak

        殺毒軟件導致YourSQLDba備份失敗

        文章中說到因為殺毒軟件掃描備份文件夾并鎖住了備份文件夾,導致SQLSERVER備份數據庫失敗


        內存

        總是給分配最大的內存給SQLSERVER實例在服務器屬性那里設置


        注意:最大內存設置只對SQLSERVER的buffer cache部分有效,不包括SQLSERVER的一些需要內存的功能,例如復制

        (SQLSERVER2012的最大內存設置已經可以限制buffer cache部分和非buffer cache部分的內存)

        為了指明Non-Buffer Pool 的內存占用,使用下面的說明

        SQL Server’s buffer pool外的內存需求(這個需求不是說你設置了SQLSERVER最大內存之后,所剩下的內存的需求,不管你有沒有設置SQLSERVER的最大內存

        下面幾項都是服務器固定需要消耗的內存,而無論你的服務器內存是4G,8G還是16G,下面幾項都會固定占用服務器的內存)

        (1)操作系統需要占用2GB內存,如果是64位操作系統,操作系統占用內存不大于3GB

        (2)SQLSERVER工作線程的倍數,你可以在SQLSERVER服務器屬性里設置最大工作線程,

        每個線程會使用0.5MB內存(X86服務器)

        每個線程會使用2MB內存(X64服務器)

        每個線程會使用4MB內存(Itanium服務器)

        注意:0.5MB內存存放的是線程自身的數據結構和相關信息,不包括數據

        為什么各種服務器所分配的線程內存不一樣,這個是操作系統分配的,SQLSERVER并沒有做特別的設置!

        如果你設置最大的工作線程數為10個,服務器是X86,剛好服務器用盡了10個線程,那么占用的內存是10*0.5MB=5MB內存

        (3)1GB的 multi-page 內存占用,鏈接服務器和其他SQLSERVER外圍的程序占用

        (4)運行在服務器上的程序可能占用1~3GB內存,例如備份程序

        例子

        例如,一個8核服務器,16GB內存,運行著SQLSERVER2012 X64,上面運行著第三方的備份程序,你可以參照下面的清單

        (1)3GB 給 Windows (2GB for 32 Bit Windows)

        (2)1GB 給 SQLSERVER 工作線程 (576 × 2MB 大概)

        各種CPU和SQLSERVER版本組合自動配置的最大工作線程數
        CPU數 32位計算機 64位計算機
        <=4 256 512
        8 288 576
        16 352 704
        32 480 960

        (3)1GB for MPAs, etc. (multi-page apply)

        (4)1~2 GB 給 備份程序.

        您能夠找到更多信息關于“最大工作線程選項”http://technet.microsoft.com/en-us/library/ms187024(v=sql.105).aspx

        (For SQL Server 2008).

        開啟Lock Pages in Memory 選項

        Windows組策略決定哪個Windows賬戶能使進程將他的數據逗留在物理內存里,防止操作系統把程序數據從物理內存換頁換出磁盤上的虛擬內存

        這能夠給您帶來性能上的提升,特別遇到內存壓力的時候


        TempDB 數據庫的優化

        默認,Tempdb數據庫只有一個數據文件和事務日志文件。然而,為了性能的優化,跟著下面給出的建議最佳實踐

        TempDB數據庫的存儲計劃

        (1)設置Tempdb數據庫的恢復模式為簡單(默認就是簡單的),簡單模式能夠自動回收日志空間使日志空間的需求保持最小

        (2)不要讓Tempdb的數據文件自動增長,這可以減少管理動態文件增長的CPU開銷

        對于Tempdb數據庫,可以分開多個數據文件(總的Tempdb數據庫數據文件的數量=CPU邏輯處理器的數量,比如8核服務器可以分8個數據文件)

        每個數據文件的大小要一樣

        (3)嘗試將這些數據文件存放在不同的磁盤驅動器上以利用并行I/O

        (4)TempDB 數據文件和 日志文件應該存放在較快速度的磁盤上(如果可能推薦放在做了RAID 1的磁盤上)

        (5)使用RAID-10 或者 SSD 磁盤

        (6)預先定義好Tempdb數據庫的文件大小

        (7)設置Tempdb總的大小為當前數據庫實例中最大的那個數據庫的25%

        (8)設置Tempdb數據文件自動增長的固定大小小于200MB

        (9)你應該設置Tempdb數據庫的數據文件數量跟邏輯CPU的數量一致,最多不超過8個數據文件



        CPU的優化

        設置最大并行度(Max Degree of Parallelism)

        定義多少個邏輯CPU能并行執行查詢

        很多微軟的產品,例如SharePoint 和 Dynamics CRM都把這個設置設置為1,這個是推薦的設置


        對于 SharePoint 的LOB 應用程序,當你看到有很多CXPACKETS 的等待類型在你的SQLSERVER服務器里,

        你應該考慮一下將這個設置(Max Degree of Parallelism)設置為1


        索引填充因子

        如果你的SQLSERVER服務器有非常高的事務量TPS (transaction per second)

        你的索引有比較高碎片級別,考慮一下將填充因子設置為“80%”

        并且使用下面的SQL語句檢測一下索引碎片

        SELECT DB_NAME(ps.database_id) AS 'Database Name' ,
         OBJECT_NAME(ps.OBJECT_ID) AS 'Database Object' ,
         ps.index_id ,
         b.name ,
         ps.avg_fragmentation_in_percent
        FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) AS ps
         INNER JOIN sys.indexes AS b ON ps.OBJECT_ID = b.OBJECT_ID
         AND ps.index_id = b.index_id
        WHERE ps.database_id = DB_ID('ReportServerTempDB')
        ORDER BY ps.avg_fragmentation_in_percent DESC
        GO
         


        使用Performance Monitor (Perfmon.exe)來監控系統性能

        為了捕獲SQLSERVER特定的性能指標,你需要使用下面的計數器

        Processor: % Processor Time :平均應該低于75% (最好低于50%)

        System: Processor Queue Length:平均每個邏輯CPU應該低于2,例如在一個2邏輯CPU的機器上,他應該保持在4

        Memory—Pages/sec:平均應該低于20(最好低于15%)

        Memory—Available Bytes :可用內存應該保持在50MB以上

        Physical Disk—% Disk Time:
        Physical Disk—Avg. Disk Queue Length :每個磁盤平均應該低于2,例如:一個RAID5磁盤,這個指標應該平均低于10

        Physical Disk—Avg. Disk Reads/sec :取決于CPU和磁盤的大小,應該低于相對應磁盤的吞吐量的85%

        Network Interface—Bytes Total/sec :用于統計網絡帶寬方


        SQL Server: Buffer Manager—Page Life Expectancy:用于統計內存,應該保持在300秒
        SQL Server: 一般統計用戶的連接數 來估計大概使用的內存
        SQL Server: Databases— Transactions/sec :每秒的事務數
        SQL Server: Databases—Data File(s) Size KB:用于統計數據庫數據文件的大小,衡量磁盤子系統的性能
        SQL Server: Databases—Percent Log :衡量磁盤子系統的性能

        如有不對的地方,歡迎大家拍磚o(∩_∩)o

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQLSERVER數據庫性能的的基本

        SQLSERVER數據庫性能的的基本:SQLSERVER 數據庫性能的基本 很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能 比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器 做數據庫服務器的那臺服務器性能要相對較好,磁盤,
        推薦度:
        標簽: 主要 數據庫 基本
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲天堂视频在线观看| 亚洲精品无码成人片久久| 亚洲免费在线视频观看| 久久午夜免费鲁丝片| 亚洲综合精品香蕉久久网97| 久久免费公开视频| 亚洲视频在线观看地址| 久草视频在线免费| 亚洲日本天堂在线| 免费吃奶摸下激烈视频| jizz在线免费播放| 亚洲成AV人片一区二区密柚| 91香焦国产线观看看免费| 亚洲a级在线观看| 国产a不卡片精品免费观看| 一区二区三区免费高清视频| 亚洲精品无码成人片久久| 97av免费视频| 亚洲精品乱码久久久久蜜桃| 亚洲AⅤ无码一区二区三区在线| av网站免费线看| 亚洲精品国产情侣av在线| 性感美女视频免费网站午夜| 美女黄频免费网站| 亚洲AV无码乱码在线观看富二代| 色影音免费色资源| 美女扒开屁股让男人桶爽免费| 亚洲精品无码成人AAA片| 免费看片在线观看| 黄色片网站在线免费观看| 亚洲一区二区影院| 精品久久免费视频| 国产免费无码一区二区 | 成年女人色毛片免费看| 一区二区免费在线观看| 亚洲视频在线不卡| 亚洲国产一区二区视频网站| 91精品国产免费久久久久久青草| 深夜免费在线视频| 亚洲中文无码av永久| JLZZJLZZ亚洲乱熟无码|