前言:任何的優化和修改都是以業務狀況爲前提,可能有的寫的有誤或者不許確的地方,歡迎各位來拍磚。sql
1.在建立db的時候自增加建議設置成按MB(M)增加,步長根據業務量來設置,通常狀況建議設置100-200M(見圖片),還有就是儘可能別改初始大小,這個默認就好。shell
若是按照數據文件(mdf)按照默認的1m增加,同時db的業務寫入比較頻繁,那數據庫就會頻繁的向磁盤請求空間,會形成沒必要要的io消耗,也會由於申請空間形成資源等待等問題。數據庫
若是把日誌文件(ldf)按照默認的百分比10%增加,一樣當db業務量很大或者有大事務的時候,日誌會蹭蹭的增加,假如如今日誌文件大小是100G,那每次增加步長就是10G,各位能夠想一下若是數據庫忽然像磁盤申請10個G的空間,那當時的io狀況會是什麼樣。windows
2.建議給系統預留一些內存。根據內存大小預留(服務器64g內存通常我限制sqlserver到60g,留4個g給系統用,仍是那句話根據業務狀況來定)。由於sqlserver有一些操做是不消耗系統給sqlserver預留的內存的。好比你的服務器內存是64g,如今sqlserver進程佔用50g,這時候若是你作備份操做的時候,這個操做消耗的不是sqlserver佔用的50g,而是剩餘的14g內存。還有一些其餘的操做也會佔用非sqlserver的內存,例如索引重建(這個記憶模糊了準確性有待考證)。假如如今sqlserver把64g內存都佔滿了,這時候你須要備份,那內存從哪來呢?只能讓sqlserver釋放緩存中的一些對象來給你提供備份的內存。若是如今業務繁忙可能就會由於內存不足或者內存命中引發性能問題了。緩存
3.profiler是個好東西,誰用誰知道。服務器
4.windows的性能監視器是監控sqlserver性能必備的工具(友情提示:快捷鍵是perfmon.msc)。具體監控指標我會在其餘blog裏寫。工具
5.若是大家機房的防火牆足夠流弊,程序代碼寫的足夠嚴謹,數據庫沒有公網ip,那你可使用xp_cmdshell這個存儲過程,不然請關閉這個config。sqlserver
曾經有一臺sqlserver服務器放在我面前我沒有統一管理,後來我忘了服務器的登錄密碼。因而我用sa口令登錄這臺數據庫,成功的經過xp_cmdshell添加了服務器管理員帳號,成功的經過這個管理員帳號登錄了服務器。原本這應該是一個皆大歡喜的故事,可是你有沒有想過若是別人經過非法程序知道了你的數據庫鏈接串,恰巧你又開啓了xp_cmdshell呢,那麼你就能夠準備簡歷了。性能
6.不要勾選登錄框上邊的保存密碼選項(別問我爲何,任性,就是擔憂某一天個人服務器被別人登錄了隨便就能進數據庫了,隨便就刪我數據毀我db了怎樣!!)。優化
7.如非特殊需求儘可能不要用過ssms跨機器登錄(尤爲是當你的服務器不是你一我的使用的時候)。好比你在192.168.1.3這個服務器上用ssms登錄經過ip帳號密碼192.168.1.4這臺服務器的db,這是沒問題的,可是當你使用完之後儘可能養成隨手關掉這個鏈接的習慣。不然下一我的或者你本身不注意就會把想在本機上執行的腳本執行到了遠端的那個db上。
8.存放db物理文件的路徑儘可能別使用默認路徑,本身在某個盤符下建個命叫db或者data之類的文件夾存放就好,不然找起來是個很痛苦的事也不方便管理。不要直接建在磁盤的根目錄下,由於這樣有的時候可能會涉及到權限的問題讓你蛋疼很久。若是有2個磁盤陣列(例如一個raid10一個raid0)或者2個單獨的物理磁盤,最好將mdf文件和ldf文件分開存放提升io性能(mdf放在raid10上,ldf放在raid0上)。
9.備份數據庫的時候儘可能選擇業務量最小服務器負載最小的時候,若是能夠選擇壓縮備份,節省磁盤空間(固然也會產生額外的io)。日誌備份不用太頻繁也不能太長,視業務量和容許丟失數據的程度而定。
10.若是這個實例下有除了備份之外其餘的做業儘可能別選擇整點的時間跑,往前或者日後錯開幾分鐘,由於通常的日誌備份都會選擇間隔一小時或者多少分鐘,多數都是整點備份。因此其餘的做業儘可能避開這種備份操做的時間。
11.做業監視器只能看到做業最後一次執行的狀態。
12.查看sql服務啓動時間:SELECT LOGIN_TIME FROM MASTER..SYSPROCESSES WHERE SPID= 1
13.不要讓程序使用sa做爲數據庫鏈接串,sa的密碼儘量的複雜,sa弱口令的危害不用多說吧。
14.查看當前數據庫鏈接狀況的快捷鍵是crtl+1(sp_who)鎖狀況的快捷鍵是ctrl+2(sp_lock),執行的快捷鍵是alt+x或者是f5(雖然有快捷鍵可是儘可能別用),按win+r鍵調出來運行欄輸入ssms能夠打開sqlserver的management studio,選中表按alt+f1能夠查看錶的屬性(sp_help),新建一個查詢窗口的快捷鍵是alt+n,這些都是比較經常使用的快捷鍵,能夠方便你的數據庫操做。
15.有時候當你新建或者修改一個表或者字段的之後,你執行查詢或者寫出來新建的字段發現新添加的對象下邊有個紅線,鼠標放上去會顯示列名無效,對於我這種有輕微強迫症的人很難受。形成這個現象的緣由是:SQL Server的intellisense(智能感知功能),沒有感知到這項修改,咱們能夠手動的執行快捷鍵ctrl+shift+r來從新感知。
大過年的腦子裏都被各類吃吃喝喝的填滿了- -暫時就想起來這麼多,之後有想到的再補充,若是有不許確的或者不明白的地方歡迎各位拍磚。
ps:本blog手打原創轉載請註明出處。