用ODBC连接DB2为啥如此慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用ODBC连接DB2为啥如此慢相关的知识,希望对你有一定的参考价值。

参考技术A DB2 本身就是这样的,实例启动后,数据库并不会启动的,默认是在第一个应用程序连接数据的时候启动数据库的(激活),在实例级分配一些内存,但是并没有影响到数据库这个级别,db2会在第一次连接的时候,按照数据库的配置参数(get db cfg for dbname)对数据库进行初始化,比如分配dbheap,util_heap_sz,locklist,logbufsz等等,这些内存的分配需要大量的时间,等到以后连接的时候,这些操作不必再作,当然就快。第一次启动的这个时候是比较长时间的。还有默认在最后一个应用程序断开连接的时候数据库会自动关闭(去激活)。

你可以采用命令
ACTIVATE DATABASE
启动数据库(激活),不过这样必须用命令
DEACTIVATE DATABASE
才能关闭数据库的(去激活)

DB2 - ODBC 连接协议特定错误代码 10061

【中文标题】DB2 - ODBC 连接协议特定错误代码 10061【英文标题】:DB2 - ODBC Connection protocol specific error code 10061 【发布时间】:2016-04-06 07:09:09 【问题描述】:

我通过以下 URL 在 Windows 7(64 位)上安装了 DB2 FP 10.1 32 位 ODBC 驱动程序

https://www-304.ibm.com/support/docview.wss?uid=swg21418043

我创建了一个“系统 DSN”并配置了以下参数

Hostname   xxxxxx2x  (DB2 server running on UNIX)
Port       5xxxx     (Port is on state 'LISTENING')
Database   dxxx
DBAlias    dxxx
Protocol   TCP / IP

当我从 ODBC 进行“连接”(测试连接)时,出现以下错误

SQL30081N  A communication error has been detected.  
Communication protocol being used: "TCP/IP".  Communication API being used:
"SOCKETS".  Location where the error was detected. Protocol specific error code(s) 10061. sqlstate=08001

对我来说设置是正确的,不知道我错过了什么

【问题讨论】:

【参考方案1】:

您是如何创建系统 DSN 的?默认情况下,Windows 7 64 位将在 64 位 ODBC 数据源管理下创建 DSN。我想我在 32 位版本下创建它的运气更好,可以在 C:\Windows\SysWOW64\odbcad32.exe 找到。

【讨论】:

是的,我是通过 odbcad32.exe 创建的

以上是关于用ODBC连接DB2为啥如此慢的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的SQL SERVER2005在连接ODBC时会出现连接超时过期呢

DB2 - ODBC 连接协议特定错误代码 10061

通过 Excel VBA 的 DB2 ODBC 连接

vb.net如何连接远程db2数据库

sqlserver 链接服务器 连接db2 查询速度慢

MS 通过 odbc 访问 mySql 连接慢