SQL Server誤區30日談 第18天 有關FileStream的儲存,記憶體回收以及其它

來源:互聯網
上載者:User

誤區 #18:如下多個有關FileStream的誤區

全部錯誤

18 a)FileStream資料可以在遠程儲存

不能,由於FileStream資料容器(指的是存放FileStream檔案的NTFS檔案夾,杜撰出來的術語)必須像資料檔案或記錄檔那樣符合本機存放區策略-也就是說,這個資料容器必須放在對於運行SQL Server的Windows Server是本機存放區(譯者註:也就是在‘電腦'裡能看到的儲存,DAC當然是了,其實SAN這類不直接連接伺服器的也算是)訪問FileStream資料只要用戶端串連到了SQL Server伺服器並擷取響應的事務上下文後,就可以通過UNC路徑進行訪問了。

18 b)FileStream的資料容器可以嵌套

不能,對於同一個資料庫的兩個不同的FileStream容器可能在同一個目錄下,但是卻不能嵌套。而對於不同資料庫的FileStream容器無法在同一個目錄下。我的一篇博文有一段代碼能說明這一點:Misconceptions around FILESTREAM storage。

18 c)對於FileStream的更新可以部分更新

對於任何FileStream的更新都會導致建立一個全新的FileStream檔案,這個操作會被日誌原原本本的記錄下來。這也就是為什麼FileStream不能被用於資料庫鏡像。這麼多資料如果用於鏡像的話那後果簡直不可想象,只能希望未來的SQL Server版本可以修改這種機制以允許部分更新。

18 d)FileStream會在不需要的時候立刻被記憶體回收

錯誤。FileStream資料會在不再需要並且到了下一個Checkpoint的時候進行記憶體回收。這點並不是那麼直接以至於很多人對FileStream的回收機制存在誤區。

18 f)FileStream存放的目錄以及檔案名稱是隨機取得

其實不然,FileStream的檔案名稱其實代表的是建立其操作對應LSN號。表和列的GUID目錄名是可以在系統資料表中擷取到。

我下面兩篇博文對此有了更詳細的解釋:

  • FILESTREAM directory structure 解釋了如何從一個FileStream所在行來得知其名稱

  • FILESTREAM directory structure - where do the GUIDs come from? 可以望文生義的知道這篇文章所講述的內容:-)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.