Fatal error encountered during command execution-阿里云开发者社区

开发者社区> 数据库> 正文

Fatal error encountered during command execution

简介: 错误信息: Fatal error encountered during command execution.(命令执行过程中遇到的致命错误。) 出现这种问题有可能是两种情况: 1.查询结果包含海量数据。

错误信息:

Fatal error encountered during command execution.(命令执行过程中遇到的致命错误。)

出现这种问题有可能是两种情况:

1.查询结果包含海量数据。长时间检索无响应。这种情况,需要优化SQL,尽量减少数据输出量。

2.表结构损坏。可以通过 CHECK TABLE REPAIR TABLE 语句进行检测或修复。

初步判断是第一种情况,有两种解决方案:优化sql语句,但是如果数据量确实大,而且对程序性能要求不高的情况下,有一种简单的解决方法就是设置CommandTimeOut属性。

 MySqlCommand optcom = new MySqlCommand(strOpt, mysqlcon, trans);
                optcom.CommandTimeout = 0;

CommandTimeout 属性

指示执行命令期间在终止尝试和产生错误之前需等待的时间。

设置和返回值

设置或返回 Long 值,该值指示等待命令执行的秒数。默认值为 30。

说明

用 Connection 对象或 Command 对象的 CommandTimeout 属性来允许因网络拥挤或服务器负载过重产生的延迟而取消 Execute 方法调用。如果在 CommandTimeout 属性设置的时间间隔内未执行完命令,将产生错误,并且 ADO 取消该命令。如果将属性设置为零,ADO 将一直等待到命令执行完毕。请确保正在为其编写代码的提供者和数据源支持 CommandTimeout 功能。

Connection 对象的 ConnectionTimeout 设置对同一 Connection 中 Command 对象上的 CommandTimeout 设置没有影响,即 Command 对象的 CommandTimeout 属性不继承 Connection 对象的ConnectionTimeout 值。

在 Connection 对象上,打开 Connection 后,ConnectionTimeout 属性将保持为读/写。

ConnectionTimeout 属性

指示在终止尝试和产生错误前建立连接期间所等待的时间。

设置和返回值

设置或返回指示等待连接打开的时间的长整型值(单位为秒)。默认值为 15。

说明

如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用 Connection 对象的 ConnectionTimeout 属性。如果打开连接前所经过的时间超过 ConnectionTimeout 属性上设置的时间,将产生错误,并且 ADO 将取消该尝试。如果将该属性设置为零,ADO 将无限等待直到连接打开。请确认正在对其编写代码的提供者会支持 ConnectionTimeout 功能。

连接关闭时 ConnectionTimeout 属性为读/写,而打开时其属性为只读。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章