hookee进来帮忙下!
时间:2011-10-12
来源:互联网
我发过2个帖子了,你都有简单回答。非常感谢。不过我还是不太明白。
就是关于 循环 读取数据库中的部分记录,然后更新。什么时候调用update的问题。
do while...
......
loop
我数据库中上万条记录,我只需要对其中几千条记录更改。
如果在loop结束后 调用rs.updatebatch ,那是不是意味着:
程序执行创建的记录集都保存在内容中,我循环时 读取的记录假设8000条,那8000条都在内存中,当我调用rs.updatebatch 的时候,才会 把所有记录送回数据库。
而如果在每次循环的时候 执行rs.update 那是不是 每次循环都往数据库送内容。
如果rs.updatebatch , 如果记录很多的时候, 还能保证数据正常吗? 万一电脑内存不够了怎么办? 2g的内存 执行1万条 简单的记录 会怎么样?
就是关于 循环 读取数据库中的部分记录,然后更新。什么时候调用update的问题。
do while...
......
loop
我数据库中上万条记录,我只需要对其中几千条记录更改。
如果在loop结束后 调用rs.updatebatch ,那是不是意味着:
程序执行创建的记录集都保存在内容中,我循环时 读取的记录假设8000条,那8000条都在内存中,当我调用rs.updatebatch 的时候,才会 把所有记录送回数据库。
而如果在每次循环的时候 执行rs.update 那是不是 每次循环都往数据库送内容。
如果rs.updatebatch , 如果记录很多的时候, 还能保证数据正常吗? 万一电脑内存不够了怎么办? 2g的内存 执行1万条 简单的记录 会怎么样?
作者: fisherboy 发布时间: 2011-10-12
sf。
作者: mkkistudy 发布时间: 2011-10-12
批处理不好,不仅内存不够了不好办,如果断电呢,事务用起来也不方便,还是写进去一个更新一个如下:
rs.open sql,conn,1,4
do while not rs.eof
rs("xx") = xx
rs.update
rs.moveNext
loop
rs.close
set rs=nothing
rs.open sql,conn,1,4
do while not rs.eof
rs("xx") = xx
rs.update
rs.moveNext
loop
rs.close
set rs=nothing
作者: engzlb 发布时间: 2011-10-12
过程的确是这样的。updatebatch 是一次递交, 循环内的Updade是n次递交。
内存管理是操作系统的事情,不是占据所有的物理内存,系统会自动切换虚拟内存.
--------
万条数据,尚可接受,不过,如果是更多数据不应该是全部取出来再循环,不能用其他方式?
大量数据尽可能用SQL本身的优化.
sql = "Update xxx;Update xxx;Update xxx;"
然后conn.execute sql 试试看
内存管理是操作系统的事情,不是占据所有的物理内存,系统会自动切换虚拟内存.
--------
万条数据,尚可接受,不过,如果是更多数据不应该是全部取出来再循环,不能用其他方式?
大量数据尽可能用SQL本身的优化.
sql = "Update xxx;Update xxx;Update xxx;"
然后conn.execute sql 试试看
作者: hookee 发布时间: 2011-10-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28