strsql = "SELECT strmailid FROM MAILID "
If recTmp.state = adStateOpen Then recTmp.Close
recTmp.Open strsql, gdbCurrentDB, adOpenForwardOnly, adLockReadOnly
Mails = mobjRecordset.GetRows(recTmp.RecordCount)
open数据取到本地,超过1W条,就效率暴底. 必须取出数据,不是显示分页面的问题.
请各位大人帮忙解决一下!
多谢!
解决方案 »
- 存储工程建立?
- 100分,求1860语音查询系统的实现方法?
- MSHFlexGrid如何去掉行多选,快来帮忙!谢谢!
- 急!在线等待解决:做了一个VC做的COM式DLL,在VB中使用的问题?
- 我的ftp 每天晚上开放 http://139.hao.cc
- 简单问题:如何将textbox 的值作为数字来处理?
- VB.NET中的带图标的菜单是用什么做的,有没有这样的菜单控件使用请给予指点?
- 连ACCESS的问题
- 大虾!!求救:怎么调用系统的COM1口(串口)通讯??
- “System.NullReferenceException”类型的未经处理的异常 其他信息: 未将对象引用设置到对象的实例。
- vb 怎样突破MSCOMM的串口号限制
- vb 的winsock控件如何实现一对多的连接
1. 你是想快速的取出数据到文件(比如:Excel、文本等等),是吧?
> 如果是的话,建议你不要用GetRows,也不要逐条读记录,Excel里的CopyFromRecordset效率超快!!2. 你说Open取数据效率低,是指读Sql 数据库效率低还是写文件效率低?
> 我觉得用 set rs = cnn.excute(sql) 比较简单一些!
> 如果是读sql数据库效率低的话,建议检查网络质量和带宽,看看数据包是否有重发的,检查多网卡的配置,
看看该连接的网卡是不是“优先网卡”,检查sql数据库所在的机器性能,检查sql server内存配置...
...
> 如果是写文件效率低,建议用方法(1)。3. 如果select全部的话,没有主键应该不是问题!
如果用到where等关键字的话或者部分数据的话,表必须要有主键!!!
If recTmp.state = adStateOpen Then recTmp.Close
recTmp.Open strsql, gdbCurrentDB, adOpenForwardOnly, adLockReadOnly
Mails = mobjRecordset.GetRows(recTmp.RecordCount)
open数据取到本地,超过1W条,就效率暴底.
就是从mailid中取数据出来,只读方式,服务器在局域网,
MAILID中有 65536 笔记录,光执行recTmp.Open strsql, gdbCurrentDB, adOpenForwardOnly, adLockReadOnly 完毕,也需要花费时间为132秒
不知道能否提高??