我有一台收集大量信息的服务器。现在每个月都有一个数据库,每个月的每一天都有一个表格。通常每天大约有200,000多行(每张大约150MB)。
在另一篇文章中,有人建议我每月只使用一个表格,以便更轻松地操作数据。这并不难,因为所有条目都有日期\时间戳。
问题是我们必须使用MS Access前端并且数据未链接,但每天都要导入以进行修订。这适用于自动连接到正确数据库和VBA的VBA脚本。表
sConnect = "ODBC;Driver={MySQL ODBC 5.1 Driver};" & _
"SERVER=172.16.0.0;" & _
"PORT=3306;" & _
"DATABASE=" & "Mon" & dbMonth & ";" & _
"USER=USER;" & _
"PASSWORD=PASS;"
DoCmd.TransferDatabase acImport, "ODBC Database", _
sConnect, acTable, "Data" & dbDay, "Revise", , True
任何人都有快速和快速的建议。从具有600万个条目的数据库中自动导入当天信息的简便方法?现在,通过LAN大约需要20秒才能导入一天的数据。
谢谢!
答案 0 :(得分:1)
我想到的一个问题是,为什么要将这些信息分离出来 - 为什么不简单地为条目添加时间戳,并将其全部转储到一个数据库中以对抗。更容易跟踪,维护,备份和恢复 - 然后只需编写您的VBA以获取前端的相应记录进行修改,一旦您的修订通过,将它们推回到该数据库中的表 - 也许检查一个'修改'复选框,表示下次不应该拉这些(如果我正确理解了目的)。
另一个是你为什么不想链接到数据库,或者至少是数据库的视图?
我在这里仍然有点新意,所以也许我对自己的问题没有看到更大的担忧 - 如果是这样的话,我也很乐意受到启发。
答案 1 :(得分:1)
我会将所有数据放入单个表中,创建链接而不是导入并从VBA生成查询。是的,预先可能有点复杂,但在我看来,最容易继续使用和维护。
我们有MySql,Access数据库,Access表单,VB6和VB.Net的混合。使用所有这些技术是一种痛苦。我已经对应用程序做了足够的工作,知道单个表格和重新链接是您最好的选择。
答案 2 :(得分:1)
我坚持使用MySQL中的一个表,并添加一个默认为CURRENT_TIMESTAMP的时间戳字段,以便MySQL自动填充此时间戳字段。
然后,一个简单的查询可以返回一个月的记录,您可以将其追加到临时(?)表中。
...然而
我们需要导入数据 一张桌子而不只是链接
您确定真的需要这样做吗?如果您通过vba进一步处理每条记录,您是否可以在原始MySQL表中包含任何其他信息作为额外字段?
答案 3 :(得分:0)
好吧,我将重组数据库,因为我发现Access有一种“隐藏”方式来填充链接表中的过滤列表。在数据库选项中,您可以告诉它也使用ODBC作为筛选器列表。这很难找到&我甚至都不认为可以做到。现在我有更多的选择,因为我可以链接表格。
感谢所有试图提供帮助的人。