Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文本文件应该存储在我的SQL Server数据库中吗?_Sql_Sql Server_Wcf_Sql Server 2008 - Fatal编程技术网

文本文件应该存储在我的SQL Server数据库中吗?

文本文件应该存储在我的SQL Server数据库中吗?,sql,sql-server,wcf,sql-server-2008,Sql,Sql Server,Wcf,Sql Server 2008,我们使用几个文本文件作为模板来创建WCF数据服务-服务操作调用的结果 每个文本文件最多不超过3000位 与将模板文件存储在SQL Server 2008 R2服务器中相比,将模板文件与WCF Data Services文件一起存储在文件系统中有哪些优点和缺点?在SQL Server 2008之前,我强烈建议不要将文本文件等大对象存储在数据库中。这往往会减慢访问速度,使他们更难合作。相反,我通常建议存储指向相关文件的链接 当然,这意味着如果有人删除了他们不应该删除的内容,并且文件需要与数据库分开备

我们使用几个文本文件作为模板来创建WCF数据服务-服务操作调用的结果

每个文本文件最多不超过3000位


与将模板文件存储在SQL Server 2008 R2服务器中相比,将模板文件与WCF Data Services文件一起存储在文件系统中有哪些优点和缺点?

在SQL Server 2008之前,我强烈建议不要将文本文件等大对象存储在数据库中。这往往会减慢访问速度,使他们更难合作。相反,我通常建议存储指向相关文件的链接

当然,这意味着如果有人删除了他们不应该删除的内容,并且文件需要与数据库分开备份和传输,那么数据库将不会保护文件


对于SQLServer2008,我认为使用filestream函数已经克服了前面的许多问题,并且我认为使用filestream存储文件有时非常有用。它继续将实际数据存储在数据库之外,从而避免了以前的许多复杂情况。但它仍然将两者绑定在一起,并允许数据库保护文件,而不仅仅是依靠数据库中的链接来确保正确。

这两种存储方法都有很多优点和缺点。如今(我的观点已经改变了,将来可能会再次改变),我会关注安全性和可管理性

  • 如果是敏感数据,您可以通过将它们存储在数据库中来获得更高的安全性。如果没有别的,入侵数据库可能比入侵文件系统更困难。如果安全性不是那么重要,那么将其存储在操作系统上会更容易/更简单
  • 对于管理,如果数据得到更新(以及更新的频率),更新有多容易?数据库中的一个实例比web场中每个服务器上的一个实例更容易更新(或损坏…)。(1台服务器,没有问题,20台服务器,可能会让人头疼。)

    • 我认为最好直接将数据存储在数据库中。这使得访问速度更快,因为数据库在读取和处理数据方面效率更高。你可以随时将电影存储在数据库中——这没问题。然后也可以流式传输大数据


      出于安全原因,现有的配置数据库的选项越来越多。如果您对数据库进行集群,这将更具可扩展性。

      您是否有任何特别的原因希望存储文件而不是文件的文本内容?奇怪的是,3K很小。即使在SQL 2005之前的版本中,您也可以将8K的数据放入varchar中。所以这实际上是一个更一般的问题:“我应该把我的配置数据放在哪里?放在文件中还是数据库中?”有很多关于这个主题的文章。