今天早上data warehouse 部門的人告訴我平常的data loading時間還算正常,但是昨天晚上的loading 時間比一般平常的時間長很多,是不是資料庫有什麼問題?
我仔細檢查了一下資料庫,發現昨天的資料檔案mdf file 已經滿了,資料庫自動加了10gb 來增大這乙個資料檔案。我又跟著進一步檢查ifi 的設定,發現這個設定沒有被啟用。幾乎可以肯定這個就是問題的所在.
什麼是ifi 呢?ifi 就是instant file initialization. 當資料庫要取得硬碟空間來擴增資料檔案的時候,系統會把取得的硬碟空間乙個乙個的用數字0 把它填滿,稱為「zero out the disk」.如果是小小的1mb,可能不痛不癢。但如果是10 gb 或是更大的硬碟空間,那就要花一段時間來等待系統用數字0 填滿硬碟. 如果資料庫啟用ifi 的話,sql server 就會省略這個zero out 的過程。相對的,資料庫就不用靜置在那裡等待這個過程的完成.所以一般來講,在設定資料庫的時候,尤其是資料倉儲,都會啟用ifi 的功能。
但是啟用這個功能都沒有什麼缺點嗎?答案是有的,會有資料安全考量的問題。因為省略了zero out disk 的動作,所以新取得的硬碟空間不會被完全刪除乾淨。有心人士是可以透過特別的方法來讀取那些原本該被刪除的資料。所以有security 的考量。但很多事情都有優缺點,還是需要衡量利與弊的比重,來做最佳的設定選擇。
啟用 SQL Server 中的跨資料庫訪問
當某個資料庫中的某一過程依賴另乙個資料庫中的物件時,會發生跨資料庫所有權鏈結。跨資料庫所有權鏈與單個資料庫中的所有權鏈結的工作方式相同,不同之處在於完整的所有權鏈要求將所有物件擁有者對映為同一登入帳戶。如果同一登入帳戶擁有源資料庫中的源物件和目標資料庫中的目標物件,則 sql server 不會檢查...
啟用資料庫快取
要利用asp.net2.0中的新sql server快取記憶體依賴性,必須sql server資料庫支援該功能.可使用c windows microsoft net framework v2.0 xx 下的aspnet regsql.exe工具或者使用sqlcachedependencyadmin類...
資料庫備份啟用加密
參考 code selectdb name database id asdatabasename,fromsys.dm database encryption keys gousemaster createmasterkeyencryptionbypassword usemaster createc...