感谢各位的回复,不过这里关键是那没有响应的2分钟。各位没遇到过这种问题吗?比较做个查询。 rs.open "select * from table1",,,,这个查询比较费时间的话,那这条语句就会执行很长时间才能返回。其间就是没响应的。大家写的程序,像大数据量的时候,都是保证几秒钟内就返回结果吗?
另外,这个表有4个字段的复合主键(其中一个字段为时间),总共有20几个字段。 建立了主键,应该就有聚集索引了吧?我在查询分析器里,执行查询的话,(时间='2005-03-17 12:12:12'),需要2分30秒左右返回结果。服务器是HP的,3.06G,1G内存。Win2000 Server + SQL Server 2000。这么长的时间正常吗?
这样的话,我能不能和.exe通信,得到它删除了多少了?好显示在进度条里?
---------------------------------
还是一样,在VB中,还是要等待这条语句运行成功后才能进行下一步操作的。--------------------------
是的另一个解决方案是,把你要执行的语句写到一个表中,另建一个作业,定时扫描这个表,发现有新写入的记录,就执行记录里的你那条SQL语句(要用到exec 来执行了),这样,你每次操作就相当于只是一个写一条记录的写表操作,对程序就没影响了,这就真正实现了把负担组数据库了
我建议你在日期字段上加一个索引。
然后再删除,几秒钟肯定可以搞定。
直接在flag创建索引是大忌。
问一个很弱的问题,
1 为什么在flag创建索引是大忌。
2 在日期字段上加一个索引。然后再删除,这样操作的目的是什么,如果有索引优化计划的话,会不会对这样的操作有影响
因为你这个字段上只有两种值0和1,这种情况下,flag=0或1的记录数一般都会较多,查询定位是很可能不会用到该索引,而且在插入、更新、删除时产生维护索引的额外动作,这点是很得不偿失。
rs.open "select * from table1",,,,这个查询比较费时间的话,那这条语句就会执行很长时间才能返回。其间就是没响应的。大家写的程序,像大数据量的时候,都是保证几秒钟内就返回结果吗?
建立了主键,应该就有聚集索引了吧?我在查询分析器里,执行查询的话,(时间='2005-03-17 12:12:12'),需要2分30秒左右返回结果。服务器是HP的,3.06G,1G内存。Win2000 Server + SQL Server 2000。这么长的时间正常吗?
2, 用vb生成一个.bat的批处理文件,批处理里用isql的批量语句来实现你要的功能,程序里执行bat就可以了,不会影响到界面。
huailairen(流浪猫) ( ) 信誉:100
1,用vb调用api实现多线程,实现界面线程和实际操作的分离。
2, 用vb生成一个.bat的批处理文件,批处理里用isql的批量语句来实现你要的功能,程序里执行bat就可以了,不会影响到界面。不知道这个行不行?trisum8888(宝宝) ( ) 信誉:100
我建议你重新建一个与该表相同的表,只允许“TmpFlag=1的记录”些入该表,用with check option,然后将两个表union为一个表即可。
宝宝的这个方法,我觉得可行。
算法,具体VB使用忘记了for i=1 to 300 do
begin
每次删除100条
响应系统其他
进度条+1
end