回 帖 发 新 帖 刷新版面

主题:如何最快速地删除大型数据库中符合条件的记录?

大型数据库a,63万条记录,254个字段(a1~a254),自认位比较大了,数据库b,254条记录对应表a中的254个字段,有b1,b2两个字段,b1是存放删除表a的条件,比如:第一条记录b1值是“>10”,第三条记录b1值是“<>1024”之类,即第一条记录就是删除表a中a1字段里大于10记录,第三条记录就是删除表a中a3字段里不等于1024的记录,第2条记录b1值为空即没有条件要删除,就是说要删除的条件个数不确定,从0到254个都有可能,b2字段存放的是得出表a254个字段值的程序。

我想了2种删除符合条件记录的方法:

1.将所有删除条件的全部生成数据(appe blan....repl....),然后根据条件删除,将条件转换成dele for A.or.B.or.C.or.D.......一条命令进行删除(如果有254个条件不知道一条命令行吗?)

2.将所有删除条件合理分配一下,用if X.or.Y.or.Z........多层嵌套,不能超过64层(好象6.0有限制的),如果该记录全部不符合删除条件,那么才appe blan....repl....

不知道这2种哪个执行更快点,或者哪位高手有更好的方法请指点。需要用到数组、SQL、RQBE请详细说,我不太懂这个。

回复列表 (共2个回复)

沙发

"将条件转换成dele for A.or.B.or.C.or.D.......一条命令进行删除"
从这个来看这些条件全部是或的关系吧?如果是这样那就删除254次好了。

删除要快,不知道是指的删除操作执行速度还是楼主用尽可能少的时间完成此项工作?
如果是后者定一个小程序,循环一下,每次处理一个字段和其对应条件就好。

另外,为了快速操作,索引也是很重要的,但是你的字段有254之多,如果全部建立索引则会影响操作速度,需要仔细权衡

板凳

[quote]
删除要快,不知道是指的删除操作执行速度还是楼主用尽可能少的时间完成此项工作?
如果是后者定一个小程序,循环一下,每次处理一个字段和其对应条件就好。

[/quote]
用尽可能少的时间完成此项工作

我来回复

您尚未登录,请登录后再回复。点此登录或注册