请问,在数据库编程过程中,提高数据库的更新和插入效率有什么注意的地方

chinaren_shibo 2004-05-05 05:40:35
我用VC编了一个程序,有时候需要大量的更新和插入操作,有时候觉得比较慢,新手不知如何解决,各位给点建议
...全文
30 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
showjancn 2004-05-06
其实数据库操作就要时间是花是数据库的连接上,当然要是你数据量过大,也会出现大家不想看到的现象。

如果用ADO的话可选用直接用COM提供的API
如使用如下代码:
CLSID clsid;
HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
if(FAILED(hr))
{...}
::CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)
&pDispatch);
if(FAILED(hr))
{...}
等。
这种方法可能最麻烦,但效率是最高的,程序的尺寸也最小,并且对ADO的控制能力也最强。
  • 打赏
  • 举报
回复
lxrlxr20021 2004-05-06
看sqlserver帮助,那里有异构查询的例子,至于分批操作,按天,按种类分割具体按实际情况不就是
第一批
insert into your desttable select * from sourctable
where sourcetable.date>='20030401' and sourcetable.date<='20030430'
第二批
insert into your desttable select * from sourctable
where sourcetable.date>='20030501' and sourcetable.date<='20030530'
....
批更新查ado参考手册

  • 打赏
  • 举报
回复
chinaren_shibo 2004-05-06
有没有一些示例程序呢
  • 打赏
  • 举报
回复
lxrlxr20021 2004-05-06
更新可以用存储过程和触发器,
从另外的数据库插入本地可以用sqlserver的异构数据库的访问功能导入另一数据库数据(建链接服务器也可以),数据量大的话要配合分批处理,否则内存可能不足
如是别的数据源插入可采用ado的批更新功能
  • 打赏
  • 举报
回复
CSDNXX 2004-05-05
用存储过程
  • 打赏
  • 举报
回复
specialkid 2004-05-05
用存储过程,如果不想用,就建立表索引,
  • 打赏
  • 举报
回复
chinaren_shibo 2004-05-05
我用的是SQL Server2000
  • 打赏
  • 举报
回复
菜牛 2004-05-05
有批量更新的,请针对你使用的那种数据库技术查看MSDN。
  • 打赏
  • 举报
回复
chinaren_shibo 2004-05-05
怎么没有人来回答呢
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库
加入

3957

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2004-05-05 05:40
社区公告
暂无公告