SQL Server管理 這些你懂嗎?
1. 數(shù)據(jù)庫(kù)文件有.mdf .ndf .ldf三種文件,mfd為主數(shù)據(jù)庫(kù)文件,ndf為從數(shù)據(jù)庫(kù)文件,ldf為日志數(shù)據(jù)庫(kù)文件,每個(gè)數(shù)據(jù)庫(kù)mdf文件只有一個(gè),ndf文件可以有多個(gè)。
2. 數(shù)據(jù)頁(yè)大小為8k,sql數(shù)據(jù)庫(kù)***一個(gè)特性是數(shù)據(jù)無(wú)跨頁(yè),比如一條數(shù)據(jù)3k,那么5條數(shù)據(jù)需要3頁(yè)存儲(chǔ),而不是兩頁(yè)。數(shù)據(jù)庫(kù)擴(kuò)展頁(yè)是8頁(yè),也就是如果一張表存儲(chǔ)空間不夠了,我們要插入一條3k的數(shù)據(jù),數(shù)據(jù)庫(kù)不是分配一頁(yè),而是8頁(yè),也就是64k空間,這個(gè)我們windows系統(tǒng)也是,我們見一個(gè)文本文件,然后輸入一個(gè)a,那么這時(shí)候系統(tǒng)為我們文件分配的內(nèi)存不是2個(gè)字節(jié),而是1k空間。
如果一個(gè)數(shù)據(jù)頁(yè)大小只有8k,那么像txt,image這些數(shù)據(jù)怎么存儲(chǔ)呢?
那么我們這時(shí)系統(tǒng)存儲(chǔ)的是txt,image的堆地址,她們的數(shù)據(jù)存儲(chǔ)在堆里,那么他們地址最多不會(huì)超過(guò)8字節(jié)。
3. 數(shù)據(jù)庫(kù)內(nèi)存,我們讀取一條數(shù)據(jù)是先在內(nèi)存里找,如果內(nèi)存沒有,我們就會(huì)在數(shù)據(jù)庫(kù)里面找,然后把數(shù)據(jù)讀到內(nèi)存里面來(lái)。那么我們更新一條數(shù)據(jù)呢?
我們更新(增、刪、改)一條數(shù)據(jù)不是commit的時(shí)候數(shù)據(jù)就寫到數(shù)據(jù)庫(kù)里了,而是數(shù)據(jù)庫(kù)會(huì)有一個(gè)chekpoints,在checkpoints的時(shí)候數(shù)據(jù)庫(kù),會(huì)一頁(yè)一頁(yè)的把數(shù)據(jù)往數(shù)據(jù)庫(kù)里寫。這個(gè)在sql2005里的時(shí)間大概是15分鐘只需一次,那么沒有交易的數(shù)據(jù)在哪里呢?那么可能存在兩個(gè)地方,一個(gè)是在temptdb里面,一個(gè)是在buffercahce里面。
4. 對(duì)大的系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)注意幾個(gè)問(wèn)題,我們都知道數(shù)據(jù)庫(kù)瓶頸是 磁盤陣列有I/O瓶頸,如果我們數(shù)據(jù)庫(kù)超作頻繁,這樣我們數(shù)據(jù)庫(kù)日志文件增大比較快,如果我們把數(shù)據(jù)庫(kù)文件和日志文件放在一個(gè)磁盤里那么,會(huì)導(dǎo)致越來(lái)操作數(shù)據(jù)庫(kù)的數(shù)據(jù)越慢,那么我們可以把日志文件和數(shù)據(jù)文件放在 不同的磁盤里,一個(gè)磁盤兩個(gè)通道,如果放在不同磁盤那么寫數(shù)據(jù)和日志可以并行超作了,還有我們每天***6個(gè)小時(shí)做一次日志備份,這樣我們可以減小我們的日志文件大小,因?yàn)槿罩疚募浞莺缶蛷娜罩纠锩鎰h除了。
5. 數(shù)據(jù)庫(kù)文件組的利用,如果我們數(shù)據(jù)庫(kù)設(shè)計(jì)很大,我們還可以設(shè)計(jì)數(shù)據(jù)庫(kù)文件組,把不同的數(shù)據(jù)放在不同的文件組,不同文件組放在不同磁盤,如果表大,我們還可以把一個(gè)表放在不同文件組,很多時(shí)候我們把一個(gè)表放在不同文件組,可能比放在一個(gè)文件組快,因?yàn)榉旁诓煌募M是并行訪問(wèn)的,但是放在一個(gè)文件組需要順序訪問(wèn),一般沒有必要的情況下,還是建議大家做表分區(qū)。
6. 建數(shù)據(jù)庫(kù)的時(shí)候我們需要注意,我們數(shù)據(jù)文件放在磁盤的格式fat32的允許數(shù)據(jù)庫(kù)文件***為2g如果我們建立好數(shù)據(jù)庫(kù)后再發(fā)現(xiàn)這個(gè)問(wèn)題就麻煩了,要不停的加數(shù)據(jù)庫(kù)文件,所以建議放在NTFs格式磁盤上,數(shù)據(jù)庫(kù)***容量修改規(guī)則,能改大不能該小,那么有沒有把數(shù)據(jù)庫(kù)改小的辦法呢?有的壓縮數(shù)據(jù)庫(kù)。
這里我們可以壓縮數(shù)據(jù)大小。
7. 備份數(shù)據(jù)庫(kù)注意事項(xiàng):
1.一定要選上下面那兩個(gè)勾,這樣保證我們備份成功。
我們備份數(shù)據(jù)庫(kù)(特別是做維護(hù)計(jì)劃的時(shí)候)的***步驟一般用
1. 檢查數(shù)據(jù)庫(kù)的完整性
2. 日志尾備份(后面我們復(fù)災(zāi)的時(shí)候會(huì)講到)
3. 備份
***這幾個(gè)是有順序來(lái)自。
我們備份一周備份***是周末完整備份,1-5差異備份,6小時(shí)做一次日志備份
8. 數(shù)據(jù)庫(kù)性能監(jiān)視打開方法:
比如我們監(jiān)視應(yīng)用程序引起的sqlserver死鎖 添加監(jiān)視:
我們可以看到如下:
都是0誒沒有死鎖,那么證明我們系統(tǒng)很健康啊。。。,但是監(jiān)視一般是在服務(wù)器閑的時(shí)候監(jiān)視,因?yàn)檫@個(gè)也是占用資源的。
有錯(cuò)誤的地方歡迎大家拍磚,希望交流和共享。
原文鏈接:http://www.cnblogs.com/MR_ke/archive/2011/06/12/2078891.html
【編輯推薦】