2009-12-29 157 views
16

我周圍的SQL Server FILESTREAM能力2008的SQL Server 2008 FILESTREAM性能

  1. 會在性能上的差異是返回一個文件從什麼SQL Server 2008中流傳的一些問題使用FILESTREAM能力對比直接從共享目錄訪問文件?

  2. 如果100個用戶請求100個100Mb的文件(通過存儲FILESTREAM)10秒窗口內,將SQL Server 2008中的性能慢如蝸牛?

+0

我認爲您的讀取性能可與常規共享目錄相媲美。但是,根據您的工作負載,插入/更新性能可能會發生顯着變化。b/c SQL Server通過文件維護事務完整性。我肯定會將插入/更新/刪除添加到您的測試列表 – 2009-12-29 21:41:49

回答

23

如果100個用戶請求100個100Mb的文件(通過存儲FILESTREAM)10秒窗口內,將SQL Server 2008中的性能慢如蝸牛?

什麼樣的服務器?什麼樣的硬件來服務這些文件?什麼樣的磁盤,網絡等?這麼多的問題.......

有一個非常好的博客文章由保羅·蘭德爾上SQL Server 2008: FILESTREAM Performance - 檢查出來。還有一個25-page whitepaper on FILESTREAM可用 - 也涵蓋了一些性能調整提示。


但也檢查了微軟研究技術報告To BLOB or Not To BLOB

就這麼把所有這些問題通過他們的步伐非常深刻和很好的基礎文章。

他們的結論是:

研究表明,如果對象是 超過一兆字節更大的 平均,NTFS有着明顯的優勢 在SQL Server中。如果對象是 下256千字節,數據庫 明顯的優勢。這裏面範圍, 這取決於 工作量如何寫密集型的,並且在系統中 典型副本的存儲時代。

因此,從這個判斷 - 如果你的blob通常小於1 MB,只需將它們作爲VARBINARY(MAX)存儲在數據庫中。如果它們通常較大,則只是FILESTREAM功能。

我不會太在乎的表現,而不是在「非託管」存儲在NTFS文件夾FILESTREAM的其他好處:存儲在數據庫之外的文件沒有FILESTREAM,你在他們身上沒有控制:

  • 沒有數據庫提供的訪問控制
  • 這些文件不是您的SQL Server備份的一部分
  • 這些文件不是事務處理的,例如您可能會收到沒有從數據庫中引用的「殭屍」文件或數據庫中沒有相應文件的「骨架」條目

單獨使用這些功能使得使用FILESTREAM是絕對值得的。

+0

+我試圖記住的白皮書「SQL Server 2008中的FILESTREAM存儲」 – 2009-12-29 21:59:51

+0

感謝您的迴應。如果網站通過流媒體API訪問FILESTREAM文件,則必須在防火牆上執行什麼配置才能啓用該流量?現在我們打開1433港口,但就是這樣。 – 2009-12-30 23:38:57

+1

「BLOB or not to BLOB」基於SQL Server 2005.這是一篇很棒的論文,但這些結果與討論FILESTREAM性能無關。尤其是,您無法推斷SQL Server 2008的256KB/1MB閾值。Remus在下面提到了這一點。 – jmetcher 2015-03-18 01:42:12

7

通過Win32讀取FILESTREAM相當快。見Managing FILESTREAM Data by Using Win32。但你應該遵循FILESTREAM best practices。畢竟,這是什麼powers Sharepoint和MS不會像Office(== Sharepoint)那樣在未完成存儲上下注。在FILESTREAM周圍有一些案例研究和白皮書,我只能挖掘出Laren Electronics Fuels Analysis of Formula One Racing Data with SQL Server,但我知道還有更多更詳細的數字數據。如果我記得正確,它表明FILESTREAM通常會將SMB性能降低90-95%,超過某個文件大小。對於小文件,獲取FILESTREAM API句柄的開銷開始顯現。

我還想馬克在推薦閱讀關於該主題的研究論文(也有一個關於Catharine van Ingen的頻道9訪談,也可以在iTunes播客中獲得,她在那裏談論這項工作),但忍耐請注意,該論文發佈於2006年之前 FILESTREAM已正式發佈,因此它不考慮FILESTREAM的具體內容。

至於第二個問題,僅通過指定負載而不是系統容量來詢問性能是無意義的。擁有一堆存儲SAN的128 CPU Superdome甚至不會注意到您的負載。運行在256 MB筆記本電腦上的SQL運行間諜軟件甚至無法看到您的負載...

+2

+1 您更生動地描繪了底層硬件的區別使:-) – 2009-12-29 22:00:53