一个SQL Server中数据库存储容量问题

patriot998 2001-07-20 02:12:13
现有一个图像数据库,其中的一个主表每条记录约40K,每天要添加的新记录数约为5000条。
假设硬盘容量为40G,要求使这个数据库限定在特定大小内,假设为30G;或者使整个硬盘的剩余空间保持在5G以上。否则就自动删除特定日期以前的所有记录,以保持系统有足够的空间继续运转。
怎样做方法最好?用SQL Server 的alert 能实现吗?我现在的架构是C/S,前端用DELPHI5+ADO。

另外,假定我现在要删除2个月以前的所有记录,可能是几万条或几十万条图像。在此系统中删除如此大批量的记录时,如果简单地同步执

行Delete From,等待SQL Server执行完毕将是件恐怖的事情。而且系统随时可能添加新的记录,为了不影响这一点,我的思路是在CLIENT端开辟一个线程,一条一条地删除,这样总的删除时间长了,但不影响系统添加新记录的能力。有没有更好或者更快的方法呢?

还有BOOK ONLINE中DB-Library for C有异步查询的说明,但我即使在DELPHI中能用DB-LIBRARY,我的理解是:这样的方法只是在客户端不用等待SQL语句或存储过程执行结束罢了,这和ADO中异步方式执行是一样的效果。但是在此图象系统中,做上面的删除操作Server端还是会很忙的,会影响随时添加新记录的能力,我的理解对否?欢迎指正



...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiko_lee 2001-11-30
  • 打赏
  • 举报
回复
我就是直接删除80000条数据的,就是慢了点
zhoujg 2001-11-30
  • 打赏
  • 举报
回复
你不一定要在白天干啊,等很少客户端联接的时候做啊,当满足时间范围和空间过大时进行你的那个动作啊
mat 2001-07-20
  • 打赏
  • 举报
回复
直接DELETE也没什么大不了的。你可以写一删除的存储过程。使用JOB调用,把设定的时间放在晚间就是了。记得要启动AGENT服务呀。
hailong525 2001-07-20
  • 打赏
  • 举报
回复
建议最好是在服务器端写一函数或存储过程,用游标定位执行,这样效率会高许多!
由客户端调用即可!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧