新手SqlServer數(shù)據(jù)庫dba需要注意的一些小細(xì)節(jié)
前言:任何的優(yōu)化和修改都是以業(yè)務(wù)情況為前提,可能有的寫的有誤或者不準(zhǔn)確的地方,歡迎各位來拍磚。
1.在創(chuàng)建db的時候自增長建議設(shè)置成按MB(M)增長,步長根據(jù)業(yè)務(wù)量來設(shè)置,一般情況建議設(shè)置100-200M(見圖片),還有就是盡量別改初始大小,這個默認(rèn)就好。
如果按照數(shù)據(jù)文件(mdf)按照默認(rèn)的1m增長,同時db的業(yè)務(wù)寫入比較頻繁,那數(shù)據(jù)庫就會頻繁的向磁盤請求空間,會造成不必要的io消耗,也會因?yàn)樯暾埧臻g造成資源等待等問題。
如果把日志文件(ldf)按照默認(rèn)的百分比10%增長,同樣當(dāng)db業(yè)務(wù)量很大或者有大事務(wù)的時候,日志會蹭蹭的增長,假如現(xiàn)在日志文件大小是100G,那每次增長步長就是10G,各位可以想一下如果數(shù)據(jù)庫突然像磁盤申請10個G的空間,那當(dāng)時的io情況會是什么樣。
2.建議給系統(tǒng)預(yù)留一些內(nèi)存。根據(jù)內(nèi)存大小預(yù)留(服務(wù)器64g內(nèi)存一般我限制sqlserver到60g,留4個g給系統(tǒng)用,還是那句話根據(jù)業(yè)務(wù)情況來定)。因?yàn)閟qlserver有一些操作是不消耗系統(tǒng)給sqlserver預(yù)留的內(nèi)存的。比如你的服務(wù)器內(nèi)存是64g,現(xiàn)在sqlserver進(jìn)程占用50g,這時候如果你做備份操作的時候,這個操作消耗的不是sqlserver占用的50g,而是剩余的14g內(nèi)存。還有一些其他的操作也會占用非sqlserver的內(nèi)存,例如索引重建(這個記憶模糊了準(zhǔn)確性有待考證)。假如現(xiàn)在sqlserver把64g內(nèi)存都占滿了,這時候你需要備份,那內(nèi)存從哪來呢?只能讓sqlserver釋放緩存中的一些對象來給你提供備份的內(nèi)存。如果現(xiàn)在業(yè)務(wù)繁忙可能就會因?yàn)閮?nèi)存不足或者內(nèi)存命中引起性能問題了。
3.profiler是個好東西,誰用誰知道。
4.windows的性能監(jiān)視器是監(jiān)控sqlserver性能必備的工具(友情提示:快捷鍵是perfmon.msc)。具體監(jiān)控指標(biāo)我會在其他blog里寫。
5.如果你們機(jī)房的防火墻足夠流弊,程序代碼寫的足夠嚴(yán)謹(jǐn),數(shù)據(jù)庫沒有公網(wǎng)ip,那你可以使用xp_cmdshell這個存儲過程,否則請關(guān)閉這個config。
曾經(jīng)有一臺sqlserver服務(wù)器放在我面前我沒有統(tǒng)一管理,后來我忘了服務(wù)器的登陸密碼。于是我用sa口令登陸這臺數(shù)據(jù)庫,成功的通過xp_cmdshell添加了服務(wù)器管理員賬號,成功的通過這個管理員賬號登陸了服務(wù)器。本來這應(yīng)該是一個皆大歡喜的故事,但是你有沒有想過如果別人通過非法程序知道了你的數(shù)據(jù)庫連接串,恰巧你又開啟了xp_cmdshell呢,那么你就可以準(zhǔn)備簡歷了。
6.不要勾選登陸框上邊的保存密碼選項(xiàng)(別問我為什么,任性,就是擔(dān)心某一天我的服務(wù)器被別人登陸了隨便就能進(jìn)數(shù)據(jù)庫了,隨便就刪我數(shù)據(jù)毀我db了怎樣!?。?。
7.如非特殊需求盡量不要用過ssms跨機(jī)器登陸(尤其是當(dāng)你的服務(wù)器不是你一個人使用的時候)。比如你在192.168.1.3這個服務(wù)器上用ssms登陸通過ip賬號密碼192.168.1.4這臺服務(wù)器的db,這是沒問題的,但是當(dāng)你使用完以后盡量養(yǎng)成隨手關(guān)掉這個連接的習(xí)慣。否則下一個人或者你自己不注意就會把想在本機(jī)上執(zhí)行的腳本執(zhí)行到了遠(yuǎn)端的那個db上。
8.存放db物理文件的路徑盡量別使用默認(rèn)路徑,自己在某個盤符下建個命叫db或者data之類的文件夾存放就好,否則找起來是個很痛苦的事也不方便管理。不要直接建在磁盤的根目錄下,因?yàn)檫@樣有的時候可能會涉及到權(quán)限的問題讓你蛋疼好久。如果有2個磁盤陣列(例如一個raid10一個raid0)或者2個單獨(dú)的物理磁盤,最好將mdf文件和ldf文件分開存放提高io性能(mdf放在raid10上,ldf放在raid0上)。
9.備份數(shù)據(jù)庫的時候盡量選擇業(yè)務(wù)量最小服務(wù)器負(fù)載最小的時候,如果可以選擇壓縮備份,節(jié)省磁盤空間(當(dāng)然也會產(chǎn)生額外的io)。日志備份不用太頻繁也不能太長,視業(yè)務(wù)量和允許丟失數(shù)據(jù)的程度而定。
10.如果這個實(shí)例下有除了備份以外其他的作業(yè)盡量別選擇整點(diǎn)的時間跑,往前或者往后錯開幾分鐘,因?yàn)橐话愕娜罩緜浞荻紩x擇間隔一小時或者多少分鐘,多數(shù)都是整點(diǎn)備份。所以其他的作業(yè)盡量避開這種備份操作的時間。
11.作業(yè)監(jiān)視器只能看到作業(yè)最后一次執(zhí)行的狀態(tài)。
12.查看sql服務(wù)啟動時間:SELECT LOGIN_TIME FROM MASTER..SYSPROCESSES WHERE SPID= 1
13.不要讓程序使用sa作為數(shù)據(jù)庫連接串,sa的密碼盡可能的復(fù)雜,sa弱口令的危害不用多說吧。
14.查看當(dāng)前數(shù)據(jù)庫連接情況的快捷鍵是crtl+1(sp_who)鎖情況的快捷鍵是ctrl+2(sp_lock),執(zhí)行的快捷鍵是alt+x或者是f5(雖然有快捷鍵但是盡量別用),按win+r鍵調(diào)出來運(yùn)行欄輸入ssms可以打開sqlserver的management studio,選中表按alt+f1可以查看表的屬性(sp_help),新建一個查詢窗口的快捷鍵是alt+n,這些都是比較常用的快捷鍵,可以方便你的數(shù)據(jù)庫操作。
15.有時候當(dāng)你新建或者修改一個表或者字段的以后,你執(zhí)行查詢或者寫出來新建的字段發(fā)現(xiàn)新添加的對象下邊有個紅線,鼠標(biāo)放上去會顯示列名無效,對于我這種有輕微強(qiáng)迫癥的人很難受。造成這個現(xiàn)象的原因是:SQL Server的intellisense(智能感知功能),沒有感知到這項(xiàng)修改,我們可以手動的執(zhí)行快捷鍵ctrl+shift+r來重新感知。
大過年的腦子里都被各種吃吃喝喝的填滿了- -暫時就想起來這么多,以后有想到的再補(bǔ)充,如果有不準(zhǔn)確的或者不明白的地方歡迎各位拍磚。
ps:本blog手打原創(chuàng)轉(zhuǎn)載請注明出處。
相關(guān)文章
使用SqlBulkCopy時應(yīng)注意Sqlserver表中使用缺省值的列
今天,想將以前做的一個程序增加點(diǎn)功能,原本就使用SqlBulkCopy批量、定時的從目錄中的txt文件導(dǎo)入數(shù)據(jù)到Sqlserver中。以前一直都使用正常,但是不知怎的就老是出現(xiàn)一個錯誤2012-07-07推薦SQL Server 重新恢復(fù)自動編號列的序號的sql代碼
推薦SQL Server 重新恢復(fù)自動編號列的序號的sql代碼...2007-08-08SQL Server使用PIVOT與unPIVOT實(shí)現(xiàn)行列轉(zhuǎn)換
這篇文章介紹了SQL Server使用PIVOT與unPIVOT實(shí)現(xiàn)行列轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05sql語句查詢數(shù)據(jù)庫中的表名/列名/主鍵/自動增長值實(shí)例
sql語句查詢數(shù)據(jù)庫中的表名/列名/主鍵/自動增長值實(shí)例,需要的朋友可以參考下2012-06-06SQL Server誤區(qū)30日談 第24天 26個有關(guān)還原(Restore)的誤區(qū)
本系列文章一直所沒有觸及的就是有關(guān)”還原(Restore)”的話題,因?yàn)橐坏砍兜竭@個話題就會涉及大量的誤區(qū),多到我無法通過一篇文章說完的地步。2013-01-01SQL Server查看login所授予的具體權(quán)限問題
在SQL Server數(shù)據(jù)庫中如何查看一個登錄名(login)的具體權(quán)限呢,下面腳本之家小編給大家?guī)砹薙QL Server查看login所授予的具體權(quán)限問題,感興趣的朋友一起看看吧2019-09-09詳解SQL Server數(shù)據(jù)庫架構(gòu)和對象、定義數(shù)據(jù)完整性
本篇文章詳細(xì)講解了SQL Server的主鍵約束、唯一約束和外鍵約束這一塊。圖文并茂,方便大家理解與學(xué)習(xí)。有興趣的朋友可以看下2016-12-12