什么是管理 vb 表单的有效方法,该表单以 access 2013 作为数据库来处理大量数据(远高于 2 gb)?
Posted
技术标签:
【中文标题】什么是管理 vb 表单的有效方法,该表单以 access 2013 作为数据库来处理大量数据(远高于 2 gb)?【英文标题】:What is an efficient way to manage a vb form which handles huge data(much higher than 2 gb) with access 2013 as database? 【发布时间】:2016-07-19 12:33:53 【问题描述】:我目前正在使用 vb.net 设计一个 windows 窗体。互联网声明 2 GB 是 .accdb 文件的限制。但是,我需要处理比 2 GB 大得多的数据。实现这一点的最佳方法是什么?无论如何我可以定期将数据存储到其他访问数据库并清空我的主数据库吗? (但是当用户要求时,这会不会在将数据从 accdb 迁移到 windows 窗体时产生麻烦?)
编辑:我在某处读到拆分可能会有所帮助。但我不明白怎么做?- 它只会在网络中的本地计算机上创建数据库的副本。
【问题讨论】:
只需使用支持更大尺寸的不同 RDBMS。有很多免费的 您可以链接多个 Access 数据库中的对象。或者你可以考虑一个更强大的平台,比如 SQL Server/SQLite/mysql ... 如果有 10 个字段,您能否粗略估计一下 accdb 文件中有多少条目将构成 2 GB? 标记 Matt Wilko 的评论,尝试 SQL Server Express。 microsoft.com/en-us/cloud-platform/sql-server-editions-express 为了呼应其他人已经说过的话,如果您遇到了正在使用的工具的文件大小限制,听起来您很可能使用了错误的工具来完成这项工作。 2GB 是相当大量的访问数据,所以我非常愿意打赌你最终会在 accessdb 中遇到性能问题。至于 10 个字段的 2gb 是什么?这在很大程度上取决于它是什么类型的数据,数据库的碎片化程度,并且很可能取决于数据本身,没有简单的全部答案来预测这一点。话虽这么说,还是有点 【参考方案1】:您可以使用具有 10 GB 限制的 Microsoft SQL Server 2012 Express 版本的链接表,the maximum relational database size is 10GB。
你可以使用 MySQL Linked table,2 TB limitation
【讨论】:
【参考方案2】:如果没有更多细节,很难给出笼统的答案。
我的第一个建议是更改 DBMS 并使用支持大约 140 TB 的 SQLite Limit
如果您必须使用 Access,那么您将需要一个 master 数据库,其中包含指向数据真实位置的指针。
例如 MasterDB -> LocationTable -> (id, database_location)
因此,如果您需要资源,则必须使用 id 查询 master 以获取其实际位置,然后连接到 secondary 并获取数据。
或者您可以有一个映射模型,其中一定范围的 ID 在某个数据库中,您可以将逻辑保留在代码中并访问数据库一次。
【讨论】:
【参考方案3】:使用 SQL Server Express。它是免费的。
https://www.microsoft.com/en-us/cloud-platform/sql-server-editions-express
或者,如果您不想使用它,则需要将数据拆分到不同的 Access 数据库中,并链接到您需要的内容。对此进行 Google 搜索,您将拥有一切所需的一切。
【讨论】:
【参考方案4】:我同意其他关于切换到更强大的数据库系统的帖子,但如果您确实必须留在 Access 中,那么可以,可以使用链接表来完成。
您可以拥有一个包含查询的主数据库,该查询使用多个数据库中的链接表,每个数据库最大为 2 GB。如果特定表需要超过访问限制,则将部分数据放在一个数据库中,将部分数据放在另一个数据库中。 UNION 查询将允许您将两个表作为单个数据集返回。
读取和更新是一回事,但如果您需要进行插入,管理增长的任务并不简单。您需要知道数据库文件何时将超过 2 GB 并创建一个新文件,然后其表必须链接到您的主数据库。
不会很漂亮。
【讨论】:
不推荐的想法,please read this以上是关于什么是管理 vb 表单的有效方法,该表单以 access 2013 作为数据库来处理大量数据(远高于 2 gb)?的主要内容,如果未能解决你的问题,请参考以下文章
Spring认证指南:了解如何使用 Spring 执行表单验证