数据库存储的大量数据,有什么办法能把数据快速读入内存?

LBJMD 2011-03-10 03:59:10
我现在按如下代码把数据读入到内存创建好的对象的时候,初步测试了一下,时间非常慢,大概要半分钟的样子,因为后面还要做其他的处理,所以要求把数据从数据库读入到内存这一过程的速度要尽量快一些。在此想请问一下,有没有做过类似的程序的,或者有什么比较好的建议和方法,请各位指点一下。

while(!m_pRecordset->adoEOF)
{
x=m_pRecordset->GetCollect("x");
y=m_pRecordset->GetCollect("y");
z=m_pRecordset->GetCollect("z");
r=m_pRecordset->GetCollect("r");
g=m_pRecordset->GetCollect("g");
b=m_pRecordset->GetCollect("b");

CPointzb point1;
point1.set(x,y,z);
Points1.push_back(point1);


CPointys point2;
point2.set(r,g,b);
Points2.push_back(point2);
}
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhx 2011-03-10
  • 打赏
  • 举报
回复
你的代码中:
point1.set(x,y,z);
point2.set(r,g,b);
顺序都是固定的,完全可以改善数据表存数的方式,比如x限定位数和小数点,xyz存在一起,然后在vc中拆分,不知道这样效率如何?
LBJMD 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zxhx 的回复:]
没有moveNext么?
有没有可能减少读数的次数?比如xyzrbg弄成一列或两列
[/Quote]
moveNext在下面的程序里,你说的x,y,z,r,g,b弄成两列是什么意思?
zxhx 2011-03-10
  • 打赏
  • 举报
回复
没有moveNext么?
有没有可能减少读数的次数?比如xyzrbg弄成一列或两列
LBJMD 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
每次都得这样取吗?
那改进的余地不大
[/Quote]
是的,每次都要把数据取出来,然后放到两个对象里。
PS: CPointzb point1;
point1.set(x,y,z);
Points1.push_back(point1);


CPointys point2;
point2.set(r,g,b);
Points2.push_back(point2);
请问这几步在上面整个代码中占用的时间多吗? vector容器的插入操作效率应该还是蛮高的吧?
ouyh12345 2011-03-10
  • 打赏
  • 举报
回复
每次都得这样取吗?
那改进的余地不大

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧