2012-01-10 229 views
0

我們使用多個文本文件作爲模板來創建WCF數據服務 - 服務操作調用的結果。應該將文本文件存儲在我的SQL Server數據庫中嗎?

該文本文件每個小於3000 Bites Max。

將我的模板文件與WCF數據服務文件一起存儲在文件系統中與將它們存儲在SQL Server 2008 R2服務器中有什麼優缺點?

+0

是否有什麼特別的原因讓你更喜歡存儲文件而不是文件的文本內容?好奇,這一切都是 – 2012-01-10 17:58:58

+1

3K是非常小的。即使在SQL 2005以前的版本中,您也可以將8K數據放入varchar中。所以這實際上是一個更通用的問題:「我應該在哪裏放置配置數據,在文件還是數據庫中?」關於這個話題寫了很多。 – 2012-01-10 18:20:44

回答

1

在SQL Server 2008之前,我強烈建議不要在數據庫中存儲大型對象(如文本文件)。它往往會降低訪問速度,並使他們通常更難以使用。相反,我通常建議存儲鏈接到有問題的文件。

當然,這意味着數據庫不會保護文件,如果某人刪除了他們不應該保存的文件,並且文件需要從數據庫中單獨備份和傳輸。

在SQL Server 2008中,我認爲許多前面的問題已經被使用filestream函數克服了,我認爲使用filestream存儲文件有時會非常有用。它繼續將實際數據存儲在數據庫之外,這避免了許多以前的複雜情況。但它仍然將兩者綁定在一起,並允許數據庫保護文件,而不僅僅依賴數據庫中的鏈接才能正確。

1

存儲方法有很多優點和缺點。如今(我的意見已經發生了變化,並且有可能在某一天再次發生變化),我將重點放在安全性和可管理性上。

  • 如果是敏感數據,可以通過將它們存儲在數據庫中來獲得更高的安全性。如果沒有其他的東西,那麼破解數據庫可能比文件系統更難。如果安全性不是那麼重要,那麼將其存儲在操作系統上可能更容易/更簡單。
  • 對於管理,如果數據得到更新(以及發生這種情況的頻率如何),更新有多容易?數據庫中的一個實例更新(或損壞...)比網上服務器場中的每個服務器上的實例更簡單。 (1臺服務器,沒問題,20臺服務器,可能會令人頭疼)。
0

我認爲最好是直接在數據庫中存儲數據。這使得訪問速度更快,因爲數據庫在讀取和處理數據方面效率更高。您可以隨時將數據存儲在數據庫中 - 這沒有問題。那麼也可以傳輸大量數據。

出於安全原因,現有更多配置數據庫的選項已足夠。而且,如果您將數據庫集羣化 - 這更具可擴展性。

相關問題