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诶沒有死鎖,那麼證明我們系統很健康啊。。。,但是監視一般是在服務器閒的時候監視,因為這個也是占用資源的。
有錯誤的地方歡迎大家拍磚,希望交流和共享。