SQL Server效能調教系列 1 概述

2022-02-05 09:46:16 字數 2177 閱讀 1002

一. 前言

近期計畫寫一點有關sql server效能調校方面的想法, 就是太繁雜沒有整理出來頭緒.在我們寫sql,設計table或者做dba, 或者做專案時,會有好多效能方面的考量,好多論壇裡面也會常常提問到: 為何我這個sql執行的這麼慢或者效率很低,如果做效能方面的調優?

如果管理的資料庫比較大(maybe >50gb),效能方面的考量就顯得非常重要了. 在業務邏輯層面上當然希望後台的資料能夠快速的處理,提交乙個請求能夠得到快速的回應. 如果後台資料處理太慢的話,前台的頁面就會出現假死的現象,容易給user造成錯覺,還以為是程式死掉了.

sql server是當前使用最廣泛的大型資料庫系統之一,大型資料庫系統執行一段時間後就會出現執行緩慢、效能下降、故障增多等問題,為了使系統維持正常執行,必須對系統不斷進行"調校"。這樣才能夠使我們的前台頁面或後台資料處理能夠高效的執行. 效能調校不是一件簡單的事,一般來說需要有廣泛的經驗與知識,不單單是資料庫的經驗,還要對商業邏輯、系統架構設計、編寫應用程式、作業系統、架設網路環境、使用各種偵測與監控工具程式、安全與防毒等,都有基本的了解,才能在複雜的系統中,找到癥結所在。

我不是效能調校方面的專家,只能提出自己的一點淺見與想法,分享出來. 請各位博友專家學者指教,也歡迎一起交流!

二. 效能調校理論

運用80/20原則,找到最影響效率的20%進行優化,就能夠取得80%甚至更多的效果.

1. 調校的五個基本原理

(1). 全域性考慮,區域性休整.

正確的找到問題,對資料庫的干涉減到最小,才能有效的調優.在做一些區域性的調整時,一定要考慮全域性性的因素.

(2). 劃分打破瓶頸.

大多數情況系統執行緩慢,是由於系統中的某個模組占用的大量的資源,阻礙的其他程序的訪問,進一步限制系統的效能,造成瓶頸.

(3). 啟動成本高,執行成本低.

啟動的開銷,比執行的開銷低. 應該用盡可能少的啟動次數來獲取最好的效能.

(4). 伺服器和客戶端之間合

/script>

理的任務分配,loading均衡.

把loading均衡,如果有多個server, 可以平分loading,以提高整體的效能.

(5). 效能**比.

sql server的高速度需要搞配置的硬體做支撐

,所以在效能與**之間需要乙個權衡點.

2. 調校就是要找出系統的瓶頸, 做優化以消除瓶頸,提高系統執行效率.剛開始做時,可以從以下幾個方面考慮.

(1). server硬體(cpu,io,rom, 如果存在瓶頸可以考慮硬體公升級)

(2). raid

(3). sql server配置

(4). table結構設計(包括index的有效使用)

(5). 定期的維護計畫(包括backup history data,rebuild index,reorganize index,shrink database等)

(6). t-sql程式設計(找出執行效率比較低的sql語句,做優化)

三. 效能調校方法及優化技巧

1.用server效能監視器做監測(介紹performance monitor, powershell get-counter兩個工具)

2. profile,做trace追蹤sql的執行,找出耗費資源比較大的sql語句或sp

3. sql server configuration

4. index and t-sql program

......

sql server效能調校系列:

sql server效能調教系列(1)-概述

sql server效能調教系列(2)--server performance monitor(perfmon)

sql server效能調教系列(3)--powershell get-counter(計畫中...)

sql server效能調教系列(4)--profiler(上)

sql server效能調教系列(4)--profiler(下)

sql server效能調教系列(5)--sql server配置

sql server效能調教系列(6)--index structure and tuning

sql server效能調校系列(7)--raid

sql server效能調教系列(8)--執行計畫(計畫中...)

...未完待續....

SQL Server效能調優系列

這是關於sql server調優系列文章,以下內容基本涵蓋我們日常中所寫的查詢運算的分解以及調優內容項,皆為原創.資料庫技術經驗篇 sql server調優系列基礎篇 sql server調優系列基礎篇 常用運算子總結 sql server調優系列基礎篇 聯合運算子總結 sql server調優系列...

SQL Server效能調優系列

這是關於sql server調優系列文章,以下內容基本涵蓋我們日常中所寫的查詢運算的分解以及調優內容項,皆為原創.sql server調優系列基礎篇 sql server調優系列基礎篇 常用運算子總結 sql server調優系列基礎篇 聯合運算子總結 sql server調優系列基礎篇 並行運算總...

SQL Server效能調優系列

這是關於sql server調優系列文章,以下內容基本涵蓋我們日常中所寫的查詢運算的分解以及調優內容項,皆為原創.sql server調優系列基礎篇 sql server調優系列基礎篇 常用運算子總結 sql server調優系列基礎篇 聯合運算子總結 sql server調優系列基礎篇 並行運算總...