我们正在使用Sybase / ODBC如何在运行长批量SQL查询时处理断开连接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们正在使用Sybase / ODBC如何在运行长批量SQL查询时处理断开连接?相关的知识,希望对你有一定的参考价值。

我们正在使用ODBC和“Adaptive server enterprise”驱动程序在C#中开发一个应用程序,以从Sybase DB中提取数据。

我们有一个很长的SQL批处理查询,它创建了许多中间临时表,并将多个DataTable对象返回给应用程序。我们看到TABLENAME not found的例外,其中TABLENAME是我们的中间临时表之一。当我在调试器中检查OdbcConnection对象的状态时,它是Closed

我的问题很笼统。这是您为长时间运行的复杂查询而支付的价格吗?还是有一种可靠的方法可以摆脱这种虚假断开连接?

提前谢谢了!

答案

有几个ODBC超时参数 - 请参阅:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc20116.1550/html/aseodbc/CHDCGBEH.htm上的SDK文档

特别是CommandTimeOut和ConnectionTimeOut,你可以相应地设置。

但更有可能的是,当流程运行时,您被阻止或类似 - 可能会要求您的DBA检查您的查询计划以查找批处理中的各个步骤,并查找特定的问题区域,例如表格扫描等可能会掩盖您的超时问题。

以上是关于我们正在使用Sybase / ODBC如何在运行长批量SQL查询时处理断开连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过ODBC连接Sybase数据库

通过 ODBC 显示 Sybase Image 数据类型的部分图像

sybase ODBC驱动

PDO Prepared Statement over ODBC Sybase“PARAM 数据流”错误

zabbix通过ODBC监控sybase举例

使用 MySQL 通过 ODBC 包装另一个 DBMS