【问题标题】:SQL Server CE or Access for a portable database with c#?SQL Server CE 或 Access 用于使用 c# 的可移植数据库?
【发布时间】:2009-08-30 15:52:19
【问题描述】:

我正在开发一个需要存储大量数据的应用程序。

我不能使用 SQL Server Express 版本,因为它需要单独安装,而且我们的目标客户已经向我们投诉了我们之前的 SQL Server Express 版本。

现在我的选择是在 SQL Server compact 和 Access 之间。

我们存储大量报告数据(每周 300 万)。我可以使用哪个数据库?

该应用程序是可移植的并且是基于产品的应用程序。

我们公司要求我们以这样一种方式提供该应用程序,以便任何人都可以从我们的网站下载和使用它。请帮忙。

谢谢。

编辑:一小时内的 40,000 条记录是其存储的大致速率。存储的数据只是普通的 varchar、datetime、nvarchar 等。没有图像,也没有二进制或特殊的东西。

【问题讨论】:

    标签: c# sql-server database ms-access compact-framework


    【解决方案1】:

    什么是“300 万数据”/300 万张大图? 300 万字节?那里可能有很大的不同。

    无论如何,如果实际数据大小不会超过 SQL CE 支持的大小 (4GB),我可能会选择 SQL CE 而不是 Access。我已经将 SQL CE 用于一周内收集几十万条记录而没有问题的应用程序。该数据库是单个文件,可移植,并具有巨大的优势,即完整的 SQL Server 可以附加到它并将其用作数据源,即使在复制方案中也是如此。

    【讨论】:

    • 不...只有 300 万行(不是图像或数据),例如“sno,name,time received,message,username”。
    • 一小时内 40,000 条记录是其存储的大致速率。
    • 听起来你已经使用 sql ce 记录了几十万条记录......我希望它对我有用。但是现在我需要将现有数据库从 sql server 移植到 sql ce。 :( 我认为存储过程到位是一项艰巨的任务
    【解决方案2】:

    每小时 40,000 条记录等于每秒 10 条记录。我建议创建两者都需要的各种表和索引并首先进行测试。让测试运行 8 个小时,看看会发生什么。

    很可能前 x 条记录可以很好地插入,但它们变得越来越慢。 x 是 10K 到 1M 之间的某个数字。越来越慢是相当主观的,取决于应用程序。在 Access 中,我建议定期进行压缩,即可能在 100K 记录之后清理索引。但是,如果应用程序想要连续插入 8 小时的记录而不中断,那么显然这对您来说效果不佳。

    或者您可以尝试删除索引、插入记录并重新创建索引。但是,如果用户想在插入记录时查询数据,那么这也行不通。

    如果不共享数据库,Access 的运行速度也会显着提高。同样,这可能不切实际。

    最后,如果您仍然没有获得不错的性能,或者即使您做到了,请考虑让用户安装固态磁盘驱动器并将您的数据库文件放在上面。几百美元的 32 Gb SSD 驱动器可以让开发人员花费大量时间来处理事情。

    【讨论】:

      【解决方案3】:

      如果您与 .Net 紧密耦合:sql server compact 将是更好的选择。

      如果没有,请考虑使用:sqlite

      【讨论】:

      猜你喜欢
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      相关资源
      最近更新 更多