连接远程数据库

cc___999 2015-07-15 05:07:38
数据库之前是用的本地sqlite,今天改成了远程mssql,感觉慢了好几倍啊。从当前服务器ping数据库服务器约33ms,基本执行一个查询写入需要2-10秒,这个正常么?该怎么优化?
...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc___999 2015-07-16
  • 打赏
  • 举报
回复
引用 4 楼 worldy 的回复:
多线程使用那在访问数据的时候加个临界区同步一下
我现在给改成每个线程一个连接,为什么会是会挂掉。。。
inline long Recordset15::GetRecordCount ( ) {
long _result = 0;
HRESULT _hr = get_RecordCount(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}
还是这个地方,hr=E_FAIL,_result=-1
worldy 2015-07-16
  • 打赏
  • 举报
回复
多线程使用那在访问数据的时候加个临界区同步一下
worldy 2015-07-16
  • 打赏
  • 举报
回复
你这个问题应该和线程无关,估计是数据库操作参数由问题
cc___999 2015-07-15
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
不正常吧??、
之前默认开的是cpu核心数*2的线程共享一个连接,运行时间长了还会挂,都是挂在m_pRecordset->GetRecordCount();这句上,
inline long Recordset15::GetRecordCount ( ) {
    long _result = 0;
    HRESULT _hr = get_RecordCount(&_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}
返回值_hr有时候会变成failed就抛出了异常。刚把线程改成了3,虽然还是会挂,但是延迟直接变成了300+ms
cc___999 2015-07-15
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
不正常吧??、
我也感觉好像不正常
worldy 2015-07-15
  • 打赏
  • 举报
回复
不正常吧??、

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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