我执行一个存储过程。是生成一批数据插入到数据库的表中。因为数据太多例如超过9万条。就会在客户应用界面上报错,报内存不足等。(存储过程应该是直接生成10万条数据放到内存里,然后统一COMMIT 忘数据库表里插数据的吧?)
我现在想如果我想一共生成10万条数据,能不能生成到3万条数据的时候就插入到表中,也就是COMMIT一次。然后接着生成3万条又COMMIT一次。然后再生成剩下的1万条数据COMMIT一次。我试了一下。每成生一条数据插入表中我就COMMIT 一次。在ORACLE数据库存储过程中执行不到1分钟就OK了。但我换到sql server2005 中执行半个小时都过去了还没结速。上次是整个生成完数据再COMMIT得。从下午开始执行,到第二天早上才生成。这也太慢了啊。有谁有好办法???高手来来。。谁能解决!!
我现在想如果我想一共生成10万条数据,能不能生成到3万条数据的时候就插入到表中,也就是COMMIT一次。然后接着生成3万条又COMMIT一次。然后再生成剩下的1万条数据COMMIT一次。我试了一下。每成生一条数据插入表中我就COMMIT 一次。在ORACLE数据库存储过程中执行不到1分钟就OK了。但我换到sql server2005 中执行半个小时都过去了还没结速。上次是整个生成完数据再COMMIT得。从下午开始执行,到第二天早上才生成。这也太慢了啊。有谁有好办法???高手来来。。谁能解决!!
--需要 781.250000 MB
按计算结果,10万条记录,使用内存的空间不会超过1G。最后,检查客户程序。如果将结果集取回客户机,再提交回服务器,哪效率肯定是灾难性的,这条应该不至于。