1、我的Access数据库里面没存多少数据,为什么体积很大,别人和我存一样的数据为什么只有我的文件体积的1/10。

2、为什么我删除了数据,但是数据库体积没有减小?

3、为什么我存了几张图片到ole字段里面数据库体积就变大,而且变大的速度超过图片的总体积?

4、为什么我的数据库没有几条记录,体积就20多MB

5、每次体积变大后都要手动压缩?有没有办法自动压缩?

回答:

1、2、你只要在Access里面菜单 工具->数据库实用工具 -> 压缩修复数据库 就可以了

原因是:Access在删除记录或者进行其他需要临时数据的操作后,并不物理删除这些无用数据,只有压缩修复数据库的时候才真正删除。就象windows中将文件放进回收站中无法增加可用空间必须清空回收站是一个道理。

如何操作请参考以下 FLASH 动画:

手动压缩修复数据库。

3、手动将文件插入ole字段的文件,实际保存在数据库中时ole引擎会在文件数据的前面增加一段信息,用于让ole引擎处理你放进去的文件,所以体积会变大。

4、请查看一下,你的数据库里面是否有包含ole字段的表,ole字段可以存储体积非常大的文件,导致体积增长很正常。再看一下你的数据库中窗体、报表中有没有嵌入使用图片做背景。Access中的背景图片全部是以bmp图片格式存放的,即使你原先指定的是jpg格式,Access也会自动将文件格式转换为bmp再存放。

无论是背景还是控件,只要有图片,体积就会不正常地增大。还有,如果你的程序设计成运行时会使用大量临时数据,用完了再删除的,也会造成体积暴增。

5、可以设置退出时自动压缩,步骤如下:

菜单 -> 工具 -> 选项 -> 常规关闭时压缩 -> 前面打上勾

以上为转贴,以下为原创。

上面的是几种数据库变大后的解决方案。

我想说的是如何防止数据库变的如此大。

站在程序员的角度来说,所以不一定对各位站长有用。

只是或许可以给各位Asp Access的程序作者一点小小的建议而已。。

采用多个数据库,而不是一个数据库。

可以大概指定一定范围,例如从0到1W使用1号数据库。

1W到2W使用2号数据库。

如何使用?。。

con和rs定义多个。。

con1是一号数据库的,con2是二号数据库的。。

rs1是一号数据库的,rs2是二号数据库的。。

添加:

当数据达到XW条时使用新的conX和rsX。。

修改:

查询要修改的ID号。。去指定是数据库执行操作。

删除:

同修改。

用这个有一个不是很好解决的地方。比如我要查询用户排行,查询积分最大的10个用户。

由于用的多个数据库,而且用的多个rs。。

找到了两种方法,各位依照喜好使用。

第一种:

Private Function UnionRs(rsA As Recordset, rsB As Recordset) As Recordset

Dim rs As New Recordset, i%

For i = 0 To rsA.Fields.Count - 1

'设置记录集标题列

rs.Fields.Append rsA.Fields(i).Name, rsA.Fields(i).Type, adFldMayBeNull adFldIsNullable adFldUpdatable

Next

'添加rsA到rs

If Not rsA.EOF Then

rsA.MoveFirst

If rs.State = adStateClosed Then rs.Open

While Not rsA.EOF

rs.AddNew

For i = 0 To rs.Fields.Count - 1

rs(i) = rsA(i)

Next

rsA.MoveNext

Wend

rs.UpdateBatch

End If

'添加rsB到rs

If Not rsB.EOF Then

rsB.MoveFirst

If rs.State = adStateClosed Then rs.Open

While Not rsB.EOF

rs.AddNew

For i = 0 To rs.Fields.Count - 1

rs(i) = rsB(i)

Next

rsB.MoveNext

Wend

rs.UpdateBatch

End If

'返回合成后的新的记录集

Set UnionRs = rs

End Function

'调用合并函数

Private Sub Command1_Click()

Dim rs As Recordset

Set rs = UnionRs(rsA, rsB) '合并rsA和rsB

Set DataGrid1.DataSource = rs

End Sub

1、我的Access数据库里面没存多少数据,为什么体积很大,别人和我存一样的数据为什么只有我的文件体积的1/10。

2、为什么我删除了数据,但是数据库体积没有减小?

3、为什么我存了几张图片到ole字段里面数据库体积就变大,而且变大的速度超过图片的总体积?

4、为什么我的数据库没有几条记录,体积就20多MB

5、每次体积变大后都要手动压缩?有没有办法自动压缩?

回答:

1、2、你只要在Access里面菜单 工具->数据库实用工具 -> 压缩修复数据库 就可以了

原因是:Access在删除记录或者进行其他需要临时数据的操作后,并不物理删除这些无用数据,只有压缩修复数据库的时候才真正删除。就象windows中将文件放进回收站中无法增加可用空间必须清空回收站是一个道理。

如何操作请参考以下 FLASH 动画:

手动压缩修复数据库。

3、手动将文件插入ole字段的文件,实际保存在数据库中时ole引擎会在文件数据的前面增加一段信息,用于让ole引擎处理你放进去的文件,所以体积会变大。

4、请查看一下,你的数据库里面是否有包含ole字段的表,ole字段可以存储体积非常大的文件,导致体积增长很正常。再看一下你的数据库中窗体、报表中有没有嵌入使用图片做背景。Access中的背景图片全部是以bmp图片格式存放的,即使你原先指定的是jpg格式,Access也会自动将文件格式转换为bmp再存放。

无论是背景还是控件,只要有图片,体积就会不正常地增大。还有,如果你的程序设计成运行时会使用大量临时数据,用完了再删除的,也会造成体积暴增。

5、可以设置退出时自动压缩,步骤如下:

菜单 -> 工具 -> 选项 -> 常规关闭时压缩 -> 前面打上勾

以上为转贴,以下为原创。

上面的是几种数据库变大后的解决方案。

我想说的是如何防止数据库变的如此大。

站在程序员的角度来说,所以不一定对各位站长有用。

只是或许可以给各位Asp Access的程序作者一点小小的建议而已。。

采用多个数据库,而不是一个数据库。

可以大概指定一定范围,例如从0到1W使用1号数据库。

1W到2W使用2号数据库。

如何使用?。。

con和rs定义多个。。

con1是一号数据库的,con2是二号数据库的。。

rs1是一号数据库的,rs2是二号数据库的。。

添加:

当数据达到XW条时使用新的conX和rsX。。

修改:

查询要修改的ID号。。去指定是数据库执行操作。

删除:

同修改。

用这个有一个不是很好解决的地方。比如我要查询用户排行,查询积分最大的10个用户。

由于用的多个数据库,而且用的多个rs。。

找到了两种方法,各位依照喜好使用。

第一种:

Private Function UnionRs(rsA As Recordset, rsB As Recordset) As Recordset

Dim rs As New Recordset, i%

For i = 0 To rsA.Fields.Count - 1

'设置记录集标题列

rs.Fields.Append rsA.Fields(i).Name, rsA.Fields(i).Type, adFldMayBeNull adFldIsNullable adFldUpdatable

Next

'添加rsA到rs

If Not rsA.EOF Then

rsA.MoveFirst

If rs.State = adStateClosed Then rs.Open

While Not rsA.EOF

rs.AddNew

For i = 0 To rs.Fields.Count - 1

rs(i) = rsA(i)

Next

rsA.MoveNext

Wend

rs.UpdateBatch

End If

'添加rsB到rs

If Not rsB.EOF Then

rsB.MoveFirst

If rs.State = adStateClosed Then rs.Open

While Not rsB.EOF

rs.AddNew

For i = 0 To rs.Fields.Count - 1

rs(i) = rsB(i)

Next

rsB.MoveNext

Wend

rs.UpdateBatch

End If

'返回合成后的新的记录集

Set UnionRs = rs

End Function

'调用合并函数

Private Sub Command1_Click()

Dim rs As Recordset

Set rs = UnionRs(rsA, rsB) '合并rsA和rsB

Set DataGrid1.DataSource = rs

End Sub

下载本文示例代码

Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法Access数据库体积过大问题的解决方法

阅读(485) | 评论(0) | 转发(0) |

服务器自动压缩access数据库代码,Access数据库体积过大问题的解决方法相关推荐

  1. mysql新加不了数据库_MySQL数据库之mysql增加新用户无法登陆解决方法

    本文主要向大家介绍了MySQL数据库之mysql增加新用户无法登陆解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天安装openstack folsom版本,安装完m ...

  2. java+oracle数据库锁,数据库学习之Oracle数据库\记录被另一个用户锁住\解决方法...

    1.先来看看为什么会出锁住: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数 ...

  3. MySQL------报错Access denied for user ‘root‘@‘localhost‘ (using password:NO)解决方法

    MySQL------报错Access denied for user 'root'@'localhost' (using password:NO)解决方法 参考文章: (1)MySQL------报 ...

  4. mybatis generator自动生成sqlmap代码的不完善之处以及解决方法

    mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 参考文章: (1)mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 (2)http ...

  5. PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法

    PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法 参考文章: (1)PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法 (2)https: ...

  6. 数据库报错1166 - Incorrect column name 的解决方法

    数据库报错1166 - Incorrect column name 的解决方法:错误原因:字段里面有空格,删除空格即可.没了

  7. Oracle数据库 记录被另一个用户锁住 解决方法

    1.锁表原因: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. ...

  8. oracle客户端设置中文,Oracle数据库之ORACLE客户端语言设置,SQLPLUS乱码解决方法

    本文主要向大家介绍了Oracle数据库之ORACLE客户端语言设置,SQLPLUS乱码解决方法,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 客户端环境参数NLS_LANG = ...

  9. win7怎么连接不上宽带连接服务器未响应,win7宽带自动断开连接怎么办 win7宽带连接不上的快速解决方法...

    近日很多使用wn7系统的用户出现宽带自动断开连接的情况,大家知道该怎么解决吗?其实这种情况小编也遇到过,下面就为大家分享下小编遇到宽带自动断开连接的解决方法吧!大家如果没有其他的方法部分参照下面的步骤 ...

  10. 京东“加关注”代码“ID必须以zx开头”的解决方法

    京东"加关注"代码"ID必须以zx开头"的解决方法 参考文章: (1)京东"加关注"代码"ID必须以zx开头"的解决方法 ...

最新文章

  1. 百度信息流和搜索业务中的弹性近线计算探索与应用
  2. 计算机书籍-老年人编程自学书籍
  3. php fread读行,如何使fread阻塞和读取直到结束?
  4. 北京/上海/深圳内推 | 百度视觉技术团队招聘视觉/3D算法工程师
  5. 系统集成项目管理之项目采购管理
  6. 《影响力》承诺和一致原理深入剖析,人们对自己的选择是很相信的
  7. jsp使用cookie实现记住用户名和密码
  8. XLNet:广义自回归预训练语言模型 2019 NIPS
  9. iframe页面改动parent页面的隐藏input部件value值,不能触发change事件。
  10. 华为与奔驰展开合作 HMS for Car登陆S级轿车
  11. 3.3V升5V电流3A-5A同步整流升压芯片
  12. 2009年是垂直搜索引擎的春天还是迷途?
  13. A链接标签点击不会触发任何行为的写法
  14. 给Office文档加密方式与原理揭秘
  15. 实验十八 IEEE 802.15.4和ZBR协议仿真
  16. 可汗学院为什么选择Go
  17. c语言四则运算报告,C语言四则运算实验报告.doc
  18. 日语笔记(2) 动词ます形
  19. 流媒体调研:云端视频监控与可视化对讲
  20. 网易100件事任务清单html,人生必做的100件事清单

热门文章

  1. 数据库开发技术的课程记录
  2. clickhouse优缺点总结
  3. python 爱心名字代码_python写心形名字
  4. AndroidSDK目录和源码目录详解
  5. 51单片机带闹钟c语言程序,51单片机编写的闹钟程序
  6. 计算机外联管理办法,外联部管理制度
  7. p3369跳表代替平衡树
  8. 在火狐浏览器中获得borderColor的值
  9. 麻省理工的服务器位置,美国麻省理工学院的地理位置
  10. 让Firefox未载入图片显示边框