社区
疑难问题
帖子详情
如何提高ODBC一次连接多次查询的效率?
tudoumayi
2009-12-27 08:12:04
最近写个程序使用ODBC连接数据库,整个过程一次连接进行多次查询,每次查询一个语句就够了,但是查询的频繁,有的时候查询一条语句要用很久才会查询到,怎么才能够提高效率呢?
另外连接后过很长时间不查询(每次看到都是一夜12个小时左右),再进行查询时会产生10054错误,不知道是怎么回事?
...全文
265
20
打赏
收藏
如何提高ODBC一次连接多次查询的效率?
最近写个程序使用ODBC连接数据库,整个过程一次连接进行多次查询,每次查询一个语句就够了,但是查询的频繁,有的时候查询一条语句要用很久才会查询到,怎么才能够提高效率呢? 另外连接后过很长时间不查询(每次看到都是一夜12个小时左右),再进行查询时会产生10054错误,不知道是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jinsenhome
2009-12-28
打赏
举报
回复
学习
tudoumayi
2009-12-28
打赏
举报
回复
[Quote=引用 14 楼 guguda2008 的回复:]
多少用户?这样服务器能受的了吗?为啥不现用现连?
[/Quote]
主要是考虑到可能会有很多用户频繁的连接和退出这个程序,如果每次都连接和断开同数据库的连接的话会消耗的很多时间,所以就一次连接不断开连接了,现在是自己测试所以没有其他人连接,我不查询数据库就空闲了。
[Quote=引用 15 楼 colacat911 的回复:]
过一点时间没操作的进程的确会被踢掉
[/Quote]
哦。如果是这样的话,我还得再考虑考虑怎么样进行数据库的链接了。
呵呵,那是不是过一段时间如果没有查询的话,先断开再连接就可以了?
tudoumayi
2009-12-28
打赏
举报
回复
这个程序相当于服务器,会有很多的用户,但是对数据库查询使用的是一次连接多次查询的方式。
忆轩辕
2009-12-28
打赏
举报
回复
过一点时间没操作的进程的确会被踢掉
guguda2008
2009-12-28
打赏
举报
回复
[Quote=引用 13 楼 tudoumayi 的回复:]
引用 11 楼 guguda2008 的回复:
先连上然后过一夜再查询?
是啊。呵呵。
[/Quote]
多少用户?这样服务器能受的了吗?为啥不现用现连?
tudoumayi
2009-12-28
打赏
举报
回复
[Quote=引用 11 楼 guguda2008 的回复:]
先连上然后过一夜再查询?
[/Quote]是啊。呵呵。
tudoumayi
2009-12-28
打赏
举报
回复
图片显示不出来写出来吧:
Execuate sql statement error
0099CDB0
10054
0099C810
错误显示的代码:
SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, 1, theDiagState, &theNativeState,
(SQLWCHAR *) theMessageText, 100, &iOutputNo);
cout<<"Execuate sql statement error!"<<endl;
cout<<theDiagState<<endl<<theNativeState<<endl;
cout<<theMessageText<<endl;
guguda2008
2009-12-28
打赏
举报
回复
先连上然后过一夜再查询?
tudoumayi
2009-12-28
打赏
举报
回复
错误是这样的。
过了一夜会这样,如果在短时间内不管多少次查询都没有问题。不知道为什么。
tudoumayi
2009-12-28
打赏
举报
回复
[Quote=引用 19 楼 supan03 的回复:]
CPTimeout 属性决定在连接池中的连接保留的时间长度。
如果在池中连接保留的时间比 CPTimeout 设置的时间长,则
连接将被关闭并且从池中删除。CPTimeout 的默认值是 60 秒。
当然罗,可以通过创建如下设置的注册表键来设置 CPTimeout
的属性,从而启用特定 ODBC 数据库驱动程序的连接池:
\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\driver-name\CPTimeout
例如设置为100(单位为秒)
注意 默认情况下,通过将 CPTimeout 设置为 60 秒。
访问比较频繁的话,时间设的长一点。
[/Quote]
哦,我试试看。谢谢了。
马踏西风
2009-12-28
打赏
举报
回复
CPTimeout 属性决定在连接池中的连接保留的时间长度。
如果在池中连接保留的时间比 CPTimeout 设置的时间长,则
连接将被关闭并且从池中删除。CPTimeout 的默认值是 60 秒。
当然罗,可以通过创建如下设置的注册表键来设置 CPTimeout
的属性,从而启用特定 ODBC 数据库驱动程序的连接池:
\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\driver-name\CPTimeout
例如设置为100(单位为秒)
注意 默认情况下,通过将 CPTimeout 设置为 60 秒。
访问比较频繁的话,时间设的长一点。
tudoumayi
2009-12-27
打赏
举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
你用什么语言?
一般每个语言都有专用接口,实在不行了,才用odbc.
帮顶.
[/Quote]
C++
tudoumayi
2009-12-27
打赏
举报
回复
我先把程序开开,等明天再查询一下报错了,截个图上了,请大家帮我分析分析。
weiminyinhai
2009-12-27
打赏
举报
回复
我一直都用ORACLE数据库
tudoumayi
2009-12-27
打赏
举报
回复
会不会是因为SQLServer使用了Keep-alive机制,过了两个小时把这个空闲的连接当成是死链接,然后把连接关闭了的原因呢?或者其他类似的什么原因?
weiminyinhai
2009-12-27
打赏
举报
回复
可能是sql语句的判断不正确,应该每次查询时,用一个sql语句,要做判断的啊,要不它会将所有sql语句都执行了的
tudoumayi
2009-12-27
打赏
举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
是不是你没有写事务判断 没有释放掉内存??
[/Quote]
我不懂数据库不知道什么是事务判断呵呵。不过我的查询语句很简单,都是像“select userID form odb.UserList where username='zhangsan'”这样的。
所有的内存都是放了,如果让程序过一段时间就结束,经过检测没有内存泄漏。
--小F--
2009-12-27
打赏
举报
回复
是不是你没有写事务判断 没有释放掉内存??
dawugui
2009-12-27
打赏
举报
回复
[Quote=引用楼主 tudoumayi 的回复:]
最近写个程序使用ODBC连接数据库,整个过程一次连接进行多次查询,每次查询一个语句就够了,但是查询的频繁,有的时候查询一条语句要用很久才会查询到,怎么才能够提高效率呢?
另外连接后过很长时间不查询(每次看到都是一夜12个小时左右),再进行查询时会产生10054错误,不知道是怎么回事?
[/Quote]
你用什么语言?
一般每个语言都有专用接口,实在不行了,才用odbc.
帮顶.
bancxc
2009-12-27
打赏
举报
回复
不懂帮顶
PowerBI系列之Power Query专题
连接
数据库:Sql server、 Mysql(直连但是必须先安装一个mysql插件) DirectQuery直连
查询
:Sql server
ODBC
方式获取数据 表关联或多个Sql或调用存储过程获取数据 SQL中动态传参和自定义函数: sql中使用参数或...
.NET
ODBC
与JAVA JDBC
连接
HIVE
查询
数据的性能比较
最近在做大数据相关项目,大数据平台编程一般用JAVA,但由于项目组中成员用C#较熟,因此,准备做两者
连接
HIVE读取数据的性能比较测试,如果相差较大,就考虑整个项目...C#通过
ODBC
连接
HIVE读取数据 C#
连接
HIVE使用
ODBC
连接
数据库1
ODBC
作为一种简单易用的数据库
连接
方式,其完备的功能,良好的移植性使得其在数据库编程领域受到广泛的推崇。IBM 公司根据国际
ODBC
标准推出的 DB2
ODBC
驱动,在实现了
ODBC
主要功能的基础上,针对 DB2 引入了...
mysql
odbc
ado性能差异_
ODBC
、OLEDB和ADO之间的关系 ,以及性能比较
学习了.net视频之后,对里面涉及到的数据库
连接
部分中的一些概念表示很无语。网上很多相关资料,但除了...1.
ODBC
:要了解
ODBC
是什么,先了解一下数据库
连接
的相关知识。其实,在最开始
连接
数据库时,由于数据库种类繁...
C++
ODBC
开发历程
ODBC
定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言,使用该API集可以访问任何提供了
ODBC
驱动程序的数据库。 客户程序: 调用
ODBC
接口(API) 驱动程序管理器: 管理对多个...
疑难问题
22,209
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章