新手SQL Server資料庫dba需要注意的小細節

來源:互聯網
上載者:User

新手SQL Server資料庫dba需要注意的小細節

前言:任何的最佳化和修改都是以業務情況為前提,可能有的寫的有誤或者不準確的地方,歡迎各位來拍磚。

1.在建立db的時候自增長建議設定成按MB(M)增長,步長根據業務量來設定,一般情況建議設定100-200M(見圖片),還有就是盡量別改初始大小,這個預設就好。

如果按照資料檔案(mdf)按照預設的1m增長,同時db的業務寫入比較頻繁,那資料庫就會頻繁的向磁碟請求空間,會造成不必要的io消耗,也會因為申請空間造成資源等待等問題。

如果把記錄檔(ldf)按照預設的百分比10%增長,同樣當db業務量很大或者有大事務的時候,日誌會蹭蹭的增長,假如現在記錄檔大小是100G,那每次增長步長就是10G,各位可以想一下如果資料庫突然像磁碟申請10個G的空間,那當時的io情況會是什麼樣。

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)。具體監控指標見 。

5.如果你們機房的防火牆足夠流弊,程式碼寫的足夠嚴謹,資料庫沒有公網ip,那你可以使用xp_cmdshell這個預存程序,否則請關閉這個config。

  曾經有一台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來重新感知。

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.