2010-11-09 62 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 基于文件的方法,没有任何开销:利弊 迁移是一个问题。配置是一个问题。很容易被损坏。