SQL Server誤區(qū)30日談 第18天 有關(guān)FileStream的存儲,垃圾回收以及其它
誤區(qū) #18:如下多個有關(guān)FileStream的誤區(qū)
全部錯誤
18 a)FileStream數(shù)據(jù)可以在遠(yuǎn)程存儲
不能,由于FileStream數(shù)據(jù)容器(指的是存放FileStream文件的NTFS文件夾,杜撰出來的術(shù)語)必須像數(shù)據(jù)文件或日志文件那樣符合本地存儲策略-也就是說,這個數(shù)據(jù)容器必須放在對于運(yùn)行SQL Server的Windows Server是本地存儲(譯者注:也就是在‘計算機(jī)'里能看到的存儲,DAC當(dāng)然是了,其實(shí)SAN這類不直接連接服務(wù)器的也算是)訪問FileStream數(shù)據(jù)只要客戶端連接到了SQL Server服務(wù)器并獲取響應(yīng)的事務(wù)上下文后,就可以通過UNC路徑進(jìn)行訪問了。
18 b)FileStream的數(shù)據(jù)容器可以嵌套
不能,對于同一個數(shù)據(jù)庫的兩個不同的FileStream容器可能在同一個目錄下,但是卻不能嵌套。而對于不同數(shù)據(jù)庫的FileStream容器無法在同一個目錄下。我的一篇博文有一段代碼能說明這一點(diǎn):Misconceptions around FILESTREAM storage。
18 c)對于FileStream的更新可以部分更新
對于任何FileStream的更新都會導(dǎo)致創(chuàng)建一個全新的FileStream文件,這個操作會被日志原原本本的記錄下來。這也就是為什么FileStream不能被用于數(shù)據(jù)庫鏡像。這么多數(shù)據(jù)如果用于鏡像的話那后果簡直不可想象,只能希望未來的SQL Server版本可以修改這種機(jī)制以允許部分更新。
18 d)FileStream會在不需要的時候立刻被垃圾回收
錯誤。FileStream數(shù)據(jù)會在不再需要并且到了下一個Checkpoint的時候進(jìn)行垃圾回收。這點(diǎn)并不是那么直接以至于很多人對FileStream的回收機(jī)制存在誤區(qū)。
18 f)FileStream存放的目錄以及文件名是隨機(jī)取得
其實(shí)不然,F(xiàn)ileStream的文件名其實(shí)代表的是創(chuàng)建其操作對應(yīng)LSN號。表和列的GUID目錄名是可以在系統(tǒng)表中獲取到。
我下面兩篇博文對此有了更詳細(xì)的解釋:
-
FILESTREAM directory structure 解釋了如何從一個FileStream所在行來得知其名稱
-
FILESTREAM directory structure - where do the GUIDs come from? 可以望文生義的知道這篇文章所講述的內(nèi)容:-)
相關(guān)文章
數(shù)據(jù)庫表的查詢操作(實(shí)驗(yàn)二)
這篇文章主要介紹了表的查詢操作,包括單表查詢、多表連接及查詢、嵌套查詢、集合查詢等,需要的朋友可以參考下2015-08-08淺談tempdb在SqlServer系統(tǒng)中的重要作用
tempdb是SQLServer的系統(tǒng)數(shù)據(jù)庫一直都是SQLServer的重要組成部分,用來存儲臨時對象。tempdb中的任何數(shù)據(jù)在系統(tǒng)重新啟動之后都不會持久存在。因?yàn)閷?shí)際上每次SQLServer啟動的時候都會重新創(chuàng)建tempdb。這個特性就說明tempdb不需要恢復(fù)。2014-08-08sql 版本詳解 讓你認(rèn)識跟sql2000的區(qū)別
如果你是初學(xué)者,如果你只是想要在家里學(xué)習(xí)學(xué)習(xí),如果你的環(huán)境是 WindowsXP Pro,那么,你應(yīng)該選擇的 是 SQL2005 Development(開發(fā)版),而不是 SQL2005 Enterprise (企業(yè)版)或 SQL2005 Express(簡易版)。2010-05-05SQL2000個人版 應(yīng)用程序正常初始化失敗0乘以C0000135失敗
應(yīng)用程序正常初始化(0*c0000135)失敗。是什么意思?2011-01-01在查詢結(jié)果中添加一列表示記錄的行數(shù)的sql語句
如何在查詢結(jié)果中添加一列表示記錄的行數(shù)? 要求是增加一列顯示行數(shù)2008-03-03