需要把数据库中的上GB的数据提取出来进行统计,大概几百上千万记录吧。我现在使用ado recordset选择所有的数据进行操作,recordset应该是内存操作吧。感觉选择数据很耗内存不说,速度也很慢。请问有否的好的办法,提升效率降低内存使用哪?我需要对提取的数据进行各种统计分析,以及遍历分析等操作,这是必需的。谢谢!

解决方案 »

  1.   

    1.尽量优化sql
    2.尽量优化对象打开方式,比如能用只读游标打开的,就不要用其他游标
    3.存储过程
    4.索引
    5.其他
    6.不用ado...
      

  2.   

     根据楼上2为的意见:那我只有使用存储过程了。我的SQL语句倒是非常简单,就是操作的数据对象比较多,可谓海量数据。应为数据和应用程序都在同一个机器上面,不知道存储过程会不会有用哪?因为都是使用的同一个cpu、ram等硬件资源。不用ado,那我在VC环境开发用什么。恐怕ado是最方便快捷的了吧。
      

  3.   

    存储过程确实是最好的办法.
    另外也可以考虑Connection使用adUseServer游标.
      

  4.   

    可能大家误解了,。我使用得就是一台便携式笔记本,内存2GB,双核CPU1.8GHz。将来得目标主机也是数据库和应用程序客户端在一起的,就是一台电脑而已。并没有实现数据库服务器和客户端应用程序的分离。我的应用场景比较特殊些。目前使用的是SQL Server 2005 + VC/ADO访问方式。谢谢!