0

0

优化Informix数据库访问

php中文网

php中文网

发布时间:2016-06-07 17:54:06

|

1512人浏览过

|

来源于php中文网

原创

访问一个 IBM Informix 数据库所需的时间通常在不到一秒钟到某个期望的时间段之内,这取决于具体的数据库操作。但是,有时花费时间可能会比您预期的要长得多,这有许多原因,比如网络速度、系统性能、系统负载等。

在最糟的情况下,informix 客户端可能会因为无法获得期望的响应而永远被阻塞。本文将解释,在 sql 或连接请求花费比预期更长时间时,如何中断该 sql 或请求,以改善您的 informix 应用程序的性能。

数据可访问性在众多业务中变得越来越重要。Informix 服务器因其快速的性能和高度的可靠性而著称。但是,从客户端访问存储在 Informix 服务器上的数据同样依赖于硬件和操作系统的性能。Informix 提供了许多技术来保证数据访问的性能和可靠性,比如包含连接管理器的 MACH-11、自动数据库统计更新等。但是,本文主要介绍 Informix 如何处理某些由无法预测的随机系统事件所引起的异常场景,这些事件可能会导致数据库操作花费比预期更长的时间,其中包括缓慢的网络速度、意外的系统负载过重、TCP 包的丢失或其他无法预见的事件。

在很多时候,Informix 客户端会使用阻塞模式 中的 TCP 套接字与 Informix 服务器进行通信,这意味着客户端会一直等到有可用的服务器数据来实现通信。对于缓慢的连接请求,您可以中断并重试该请求,其方法是基于您的正常系统行为,将 Informix 环境变量 INFORMIXCONTIME 和 INFORMIXCONRETRY 设置为合适的值。

在数据库服务器执行一个 SQL 请求时,在来自数据库服务器的预期响应可供读取之前,应用程序会被阻塞。有时您可能想要中断一个 SQL 请求来获得应用程序控制权,因为您不想等到当前 SQL 语句完成操作。例如,如果您无意之中为一个长查询提供了错误的搜索条件,您想取消 SELECT 语句,而不是等待不需要的数据。如果它是一个多层应用程序,那么情况可能更糟。Informix 客户端(包括 CSDK 和 JDBC)允许用户在执行中中断 SQL 请求。应用程序的设计和实现需要提供用户取消 SQL 请求的支持。

如果运行的应用程序是来自第三方供应商,那么若该应用程序中没有相关选项,会很难中断 SQL 请求。为了处理此情形,Informix 在最新的客户端版本中引入了一项新功能,支持您在 Informix 客户端中启用 TCP 套接字超时,以便中断请求而无需更改任何代码。

本文中所列出的样例程序都进行了简化,仅用于演示用途。

Informix 连接超时

概述

连接到一个 Informix 数据库通常只需不到一秒到几秒的时间(具体取决于网络速度),但有时它所花的时间比预期更长。INFORMIXCONTIME 和 INFORMIXCONRETRY 是两个可控制连接行为的客户端环境变量。

简灰服装商城整站 For SHOPEX
简灰服装商城整站 For SHOPEX

SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm

下载

INFORMIXCONTIME

INFORMIXCONTIME 环境变量指定在每次尝试建立数据库服务器连接时,数据库连接请求会持续几秒钟才返回一个错误。如果 INFORMIXCONTIME 环境变量设置为 0 或一个小于 0 的值,那么数据库连接请求将等到该操作成功或失败。如果没有对其变量进行设置,那么各个系统中的默认值可能会有所不同:

  • ESQL/C:INFORMIXCONTIME 的默认值设置为 60 秒。您可以在 OS 环境中使用 OS 命令为 ESQL/C 程序设置 INFORMIXCONTIME 环境变量。
    • UNIX®/Linux®:使用 export 或 setenv 命令,具体取决于 shell。
    • Windows®:Set 命令或控制面板。
  • ODBC:它默认设置为 15 秒。相反,您可使用此 SQL_ATTR_LOGIN_TIMEOUT 连接属性指定连接请求的连接超时间隔。如果同时设置了 INFORMIXCONTIME 和 SQL_ATTR_LOGIN_TIMEOUT,则 SQL_ATTR_LOGIN_TIMEOUT 连接属性会具有更高的优先级。
  • OLEDB 和 .NET:默认值为 15 秒。您可为 Informix OLEDB 提供程序设置 INFORMIXCONTIME 环境变量,但这不适用于使用 IfxConnection.ConnectionTimeout 属性来设置连接超时的 Informix .NET 提供程序。
  • JDBC:默认值为 0,表示连接从不超时。可以在 JDBC 连接 URL 或 JDBC DataSource 连接属性中设置 INFORMIXCONTIME 环境变量。JDBC 3.70.JC1 引入了另一个名为 LOGINTIMEOUT 的环境变量。可使用它指定轮询服务器端口来建立连接的时间段(以毫秒为单位)。如果应用程序没有在指定时间内连接到 Informix 数据库服务器,将返回一个错误。它只能设置为一个 DataSource 属性。在 JDBC 连接 URL 中对它进行设置将不会生效。

您可以基于正常应用程序行为将 INFORMIXCONTIME 环境变量设置为合适的值。

如果连接请求涉及到搜索 DBPATH,则可能看到连接请求所花的时间长于 INFORMIXCONTIME 限制,以至于返回了一个错误。如果 DBPATH 包含多个服务器,那么 INFORMIXCONTIME 值需要除以 DBPATH 中包含的服务器条目数量。在此情况下,您应相应地增加 INFORMIXCONTIME 值。

INFORMIXCONRETRY

INFORMIXCONRETRY 环境变量指定客户端在 INFORMIXCONTIME 所指定的时间限制内客户端应对每个数据库服务器执行的连接尝试总数。例如,如果 INFORMIXCONTIME 设置为 30 秒并且 INFORMIXCONRETRY 设置为 2,那么若初始连接尝试无法实现,客户端将尝试在第 15 秒时重新发送连接请求。在终止之前,如果需要,它将在第 30 秒时进行另一次连接尝试。

在 CSDK 和 JDBC 3.70.xC1 以前,INFORMIXCONRETRY 环境变量的默认值为 3。从 JDBC 3.70.xC1 开始,新的默认值为 1,这意味着在初始连接尝试之后仅进行一次重试。

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

R 教程
R 教程

共45课时 | 4.9万人学习

jQuery 教程
jQuery 教程

共42课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号