Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Database 我应该将单用户MS Access数据库拆分为前端/后端吗_Database_Ms Access_Database Design - Fatal编程技术网

Database 我应该将单用户MS Access数据库拆分为前端/后端吗

Database 我应该将单用户MS Access数据库拆分为前端/后端吗,database,ms-access,database-design,Database,Ms Access,Database Design,我有一个Access数据库,我是该数据库的唯一用户。这是我建立的第一个数据库。它有16个相关表、大约40个select查询和十几个左右的update/delete查询。它已经是512MB,并且在未来12个月内,随着更多数据添加到表中,以及创建更多查询和报告,它的大小将至少翻一番。最大的表(大多数查询都可以访问)大约有800k行11个字段。在数据库的使用寿命(约12个月)内,该表很可能会增长到超过200万行 一个月前运行时间不足30秒的查询,随着表的增长,运行速度开始变慢,一些包含计算的查询现在需

我有一个Access数据库,我是该数据库的唯一用户。这是我建立的第一个数据库。它有16个相关表、大约40个select查询和十几个左右的update/delete查询。它已经是512MB,并且在未来12个月内,随着更多数据添加到表中,以及创建更多查询和报告,它的大小将至少翻一番。最大的表(大多数查询都可以访问)大约有800k行11个字段。在数据库的使用寿命(约12个月)内,该表很可能会增长到超过200万行

一个月前运行时间不足30秒的查询,随着表的增长,运行速度开始变慢,一些包含计算的查询现在需要10分钟左右才能完成(是的,我正在尽可能多地使用堆叠查询)

对于我期望从拆分中获得的性能提升,是否有人有可靠的建议


谢谢

不用了,只有查询优化和仔细索引才能加快查询时间


也就是说,如果没有其他原因,您应该将其拆分(创建备份并运行向导),以简化数据备份,并使其独立于正在进行的前端开发。

您最近压缩并反编译了吗?谢谢Gustav,我会继续为你提到的原因而分裂,也因为DB在它的使用寿命内可能会接近2GB。那么你不妨现在就开始使用一个可以保存很多数据的数据库引擎,比如SQL Server或MySQL。谢谢Gustav,我会考虑的。我正在使用Access在输入的过程中转换XML文件,以及更新/删除等。我的SQL知识很少,因此我可能仍然需要在前端使用Access。@GlennLangford:前端Access和后端SQL Server是一种经过充分验证的组合。免费的SQL Server Express可以处理高达10 GB的数据库。注意:默认情况下,Access使用带有SQL方言的数据库引擎Jet/ACE。Gustav建议使用服务器级RDM,因为像开源SQLite(顺便说一句,最大大小为140 TB)这样的访问都是文件级RDM。另外,@GlennLangford,您可以连接到多个访问后端文件,而不仅仅是一个。