首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管有连接字符串,但Postgres超时了20-30秒?

尽管有连接字符串,但Postgres超时了20-30秒?
EN

Stack Overflow用户
提问于 2014-09-16 20:12:47
回答 1查看 8.7K关注 0票数 2

我试图使用一个名为AutoTag的产品进行一些非常基本的查询。

我的PostgreSQL是本地安装的(非常强大的机器,SSD,16 is内存,等等)。

其中一张表格有4,000万多条记录(而且还将继续增长)。我试图做一个简单的查询,当从Postgres管理工具完成时,运行需要4到5分钟。

我的连接字符串尝试是以下的变体:

PORT=5432;CommandTimeout=5000;TIMEOUT=1024;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=20;COMPATIBLE=2.2.0.0;HOST=localhost;DATABASE=HistoricalData;USER ID=postgres;PASSWORD=passwordhere

连接器(Windows环境)是:NpgsqlDdexProvider-2.2.0-VS 2013 ...found at:https://github.com/npgsql/Npgsql/releases (使用在同一站点提供的“可安装”版本,原因是AutoTag制造商WIndward无法处理的“程序集”烦扰)

每次尝试在Excel中使用AutoTag 查询,都会在appx 20-30秒的中出现明显的超时,尽管上面的连接字符串(尝试了TIMEOUT=0,不会连接),但我会粘贴到下面。不尝试超时,没关系)。

救命?!显然,我在连接性方面受到了限制--我必须在64位版本的AutoTag中使用64位Excel,而另一个我可以在水晶报告中很好地使用的连接器将无法工作(文件名psqlodbc_08_04_0200)。

异常堆栈:

代码语言:javascript
复制
ERROR: 57014: canceling statement due to statement timeout (DataSourceException)
代码语言:javascript
复制
  ERROR: 57014: canceling statement due to statement timeout (NpgsqlException)           

AutoTag版本: 13.1.12.0

办公室: 15 (64位),EXCEL

Windows: Microsoft Windows NT 6.1.7601 Service Pack 1(64位),GC内存: 53,792,440

堆栈跟踪:

例外: net.windward.env.DataSourceException

消息:错误: 57014:由于语句超时而取消语句

代码语言:javascript
复制
Stack:  at net.windward.xmlreport.a.a(ArrayList A_0, e A_1, ArrayList A_2, ProcessReportAPI A_3)        

        at net.windward.xmlreport.ProcessReport.processData(Map dataProviders)

        at net.windward.xmlreport.ProcessReport.processData(DataSourceProvider datasourceProvider, String datasourceName)

        at WindwardArrow.net.windward.arrow.tools.d.a(b A_0, a A_1, a A_2, DrillDownInfo A_3, String A_4, Stream A_5, Stream A_6)

        at AutoTagCore.net.windward.autotag.controls.reports.c.a()

例外: Npgsql.NpgsqlException

消息:错误: 57014:由于语句超时而取消语句

代码语言:javascript
复制
Stack:  at Npgsql.NpgsqlState.<ProcessBackendResponses>d__0.MoveNext()      

        at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject(Boolean cleanup)

        at Npgsql.ForwardsOnlyDataReader.GetNextRow(Boolean clearPending)

        at Npgsql.ForwardsOnlyDataReader.Read()

        at System.Data.Common.DbEnumerator.MoveNext()

        at WindwardReportsDrivers.net.windward.datasource.ado.AdoDataSource.AdoNode.AdoIterator.next()

最终更新:根据所提供的解决方案突出显示上面的连接字符串中的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 20:30:14

我要说的是,由于连接字符串中有两次COMMANDTIMEOUT,而第二个字符串设置为20秒,所以确切地说是20秒。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25877613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档