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