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

chinaren_shibo 2004-05-05 05:40:35
我用VC编了一个程序,有时候需要大量的更新和插入操作,有时候觉得比较慢,新手不知如何解决,各位给点建议
...全文
61 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
怎么没有人来回答呢

4,018

社区成员

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

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