2010-11-09 64 views
0

C#中速度更快:讀取小型XML文件還是使用少量數據讀取小型SQL表?C#XML或SQL更快嗎?

我想知道是否真的有必要在SQL中創建一個表,然後建立一個連接來讀取10或11個參數。

你會推薦什麼?

回答

1

這真的取決於你需要什麼。因爲XML可以很容易地存儲在SQL Server中,所以甚至無法將兩個世界結合起來。

如果您希望實際擁有SQL Server的身份驗證,是否備份,版本化等,您可以輕鬆設計混合的XML,SQL表格解決方案。如果你真的需要一些propertyBag持久化區域文件沒問題,但他們仍然需要小心,即。訪問控制,當它不存在時要小心等等(閱讀一個文件仍然會拋出很多例外,而IT有一些很好的理由)。

問自己這樣的問題:我是否需要限制訪問,我將如何變化報告(如果有的話),

  • 我需要的版本歷史,
  • 做我讀了所有的參數或僅部分 呢?
  • 如果有人 更改條目,我該怎麼辦?
  • 沒有條目時我該怎麼辦?
  • 是否需要擴展(新增/刪除參數)?
  • 應該加密嗎?
  • 數據庫層需要知道嗎?

只是從我的頭頂上想一想。 盧克

1

如果你只是想要閱讀一些'設置',我肯定會用一個小的XML文件。我不能肯定地說它會更快,但鑑於你將消除建立連接,驗證等的頭頂,它肯定會更簡單。

如果你可以使用LINQ to XML,它確實很容易做到。

1

速度不是唯一的考慮因素。 XML文件的管理開銷不像使用SQL Server那樣多。

如果文件是本地文件,使用直接文件的讀取速度肯定比網絡SQL訪問速度快。你和數據之間的距離要少得多。對其他SQL使用的流程沒有影響。

1

讀大量文件很慢,所以如果你有大量的xml文件,我會投票支持SQL,特別是如果我們考慮到你必須解析xml文件這一事實,這是更復雜和更費時的方法連接到數據庫,特別是如果數據庫在本地主機上:)

0

基於SQL的方法:優點 易於遷移,配置基於 SQL方法:利弊 連接可升降,連接需要時間來建立,數據庫管理員會想,爲什麼有一個微小的表已經沒有任何意義,基本代碼變得過於複雜,基於 文件的方法:優點 快捷,DB 基於文件的方法,沒有任何開銷:利弊 遷移是一個問題。配置是一個問題。很容易被損壞。