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