2013-04-03 26 views
2

我們在SQL文件流數據庫中有超過200GB的數據。那麼,有人可以建議我什麼是最好的提取文件流文件的最快方法嗎?檢索Sql FileStream文件

我打算使用C#應用程序來提取文件(通過循環一個接一個)。有沒有其他方法可用,或者你們知道如何使用C#快速提取文件?

在此先感謝。

+0

提取它們一旦把它們放在別的地方?或者你的程序是否真的需要一個接一個地反覆提取所有文件? –

+0

是的,我們需要從數據庫中逐個提取文件並將它們存儲在一個文件夾中。 (實際上,我們需要將所有提取的文件移動到Amazon S3。) – user972255

+0

與您已經擁有的緩慢解決方案相比,您需要更快的代碼速度? (我假設你打算用測量的時間顯示示例代碼,以便人們可以建議改進) –

回答

3

如果您正在提取大量文件 - 這聽起來就像是在這種情況下 - 並且您有權訪問SQL Server計算機,您可以將文件夾中的所有文件複製到磁盤上。

這取決於版本,但你可以在這裏找到他們的SQL Server 2008:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 

這將包含你可能重命名爲更具可讀性與GUID命名的所有文件通過查看數據庫C#應用程序中的表。

如果您沒有訪問SQL服務器的機器,那麼遠程讀取它們並保存每個文件可能是一條可行的路。只要確保您有足夠的帶寬,並檢查並行運行查詢是否會提高速度。

請參閱此鏈接瞭解更多信息:

http://www.codeproject.com/Articles/128657/How-Do-I-Use-SQL-File-Stream

+0

我無法理解你通過複製磁盤上文件夾中的所有文件是什麼意思。在我的理解中,sql文件流文件被加密並存儲在sql服務器中(如果我錯了,請更正我),我們需要使用一些程序/ API來檢索文件(在我的情況下爲c#)。 – user972255

+0

我不相信它們在本地磁盤上被加密。您應該能夠像SQL Server計算機上的普通文件一樣打開它們,前提是您擁有關於文件類型的一些信息。 – Lummo

+0

我不認爲這是可能的...但讓我檢查相同的... – user972255