写了一个数据采集系统软件,后台数据库采用ACCESS,数据库中有4个表,第一个表保存最近两天每10秒产生的数据,第二个表保存最近七天每分钟产生的数据,第三个表保存最近30天每10分钟产生的数据,第四个表每天保存一个数据。为了实现这样的动态保存数据,就需要每天对数据库中数据进行增删操作,反复的增删操作,加大了数据库容量。
请问是否有更好的解决办法来存储这些数据,避免反复的增删操作加大数据库容量的问题。
我的做法是:一个数据库中存4个表,分别存储这四类数据。每到新的一天,就删除数据表中多余的数据。这样日积月累,数据库的容量明显增大。
请各位指点下,是否有更好的设计思路,来解决数据库保存数据加大了数据库容量的问题。
请问是否有更好的解决办法来存储这些数据,避免反复的增删操作加大数据库容量的问题。
我的做法是:一个数据库中存4个表,分别存储这四类数据。每到新的一天,就删除数据表中多余的数据。这样日积月累,数据库的容量明显增大。
请各位指点下,是否有更好的设计思路,来解决数据库保存数据加大了数据库容量的问题。
要么换数据库,要么按2楼的做(不过内存吃得大)
我是这样写的:txtsql = "select * from tbvalue1 where num=" & n & " and cdate(valueDate+ValueTime) between # " & Format(Trim(Text1.Text), "yyyy/mm/dd") & " " & Format(Trim(Text3.Text), "hh:mm:ss") & "# and #" & Format(Trim(Text2.Text), "yyyy/mm/dd") & " " & Format(Trim(Text4.Text), "hh:mm:ss") & "# order by valueDate,valueTime"""这个是ACCESS数据库的查询,在SQL SERVER数据库中应该怎样改写呢??
'创建压缩临时数据库到另一目录
j.CompactDatabase "provider=Microsoft.Jet.OLEDB.4.0;data " & _
"source='" + datapath + "\" + dataname + "';" & _
"jet oledb:database password=shensoft", _
"provider=Microsoft.Jet.OLEDB.4.0;data " & _
"source=c:\data.tmp;" & _
"jet oledb:encrypt database=true;" & _
"jet oledb:database password=shensoft"
'删除原来的数据库
Kill datapath + "\" + dataname + ""
'将压缩后的数据库复制回原来位置
FileCopy "c:\data.tmp", datapath + "\" + dataname + ""
'删除临时数据库
Kill "c:\data.tmp"
Set j = Nothing