求救!!!(200分)

  • 主题发起人 主题发起人 zycjf
  • 开始时间 开始时间
Z

zycjf

Unregistered / Unconfirmed
GUEST, unregistred user!
用adoquery 处理sql2000数据库(每天记录大于10万条),看到内存在不断减少,看看资源
管理器,sqlserver占了400多兆(还在不断上升),停掉sql2000,重新启动,sqlserver占的
内存就下来了,谁知道这是怎么回事吗?
处理过程很简单,有两个表,receive,send,从receive中获取未处理的数据,处理后写到
send 中

with adoquery1 do
begin
active:=false;
sql.clear;
sql.add('select * from receive where bz=0');
active:=true;
while not eof do
begin
...获取recieve的记录并处理
...写到send
edit;
fieldbyname('bz').asinteger:=1;
post;
next;

end;
end;

用bde来处理会不会效率高些?
对了,上面的程序我是放在一个 timer中执行的,会不会跟此有关?
如果跟此有关,有什么好办法?

应该跟程序没关吧,我把程序都停掉后,内存下不来,一定要把 sqlserver重启才行,而且
数据库空间增长的飞快,主要是日志在增长,如何删除日志?是的,我的程序每隔一段时间
就要触发一次,看看有没有新的数据进来。

 
你怎么发了两个帖子,是不是有分没有地方送呀?
不过建议你还是移植到服务器上,这是根本办法,写存储过程和触发器有不难
 
你将程序放在一个秒 timer中有什么特别的用意吗?
在SQL SERVER 中建立上个视图 create view aaa select * from recieve where bz='0'
试试,我没试过。。。
 
楼上几位兄台说的不错
可以将将操作移植到服务器上,写个存储过程什么的来完成操作。
或者每次操作后, 将AdoQuery 关闭,并且释放。
 
接受答案了.
 
后退
顶部