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

时间:2014-09-16 20:12:48

标签: postgresql timeout connection-string postgresql-9.3

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

我的PostgreSQL是在本地安装的(非常强劲的机器,SSD,16GB RAM,等等)。

其中一个表有4000多万条记录(并且将会增长)。我正在尝试做一个简单的查询,当从Postgres管理工具完成时,需要4-5分钟才能运行。

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

  

PORT = 5432;的的CommandTimeout = 5000 ; TIMEOUT = 1024; POOLING = TRUE;了MinPoolSize = 1; MAXPOOLSIZE = 20;的的CommandTimeout = 20 相容= 2.2.0.0 ; HOST =本地主机; DATABASE = HistoricalData; USER   ID = postgres的; PASSWORD = passwordhere

连接器(Windows环境)是:NpgsqlDdexProvider-2.2.0-VS2013 ...位于:https://github.com/npgsql/Npgsql/releases(使用由于“装配”烦恼而在同一站点提供的“可安装”版本AutoTag制造商WIndward无法绕开)

每次尝试使用AutoTag 在Excel中进行查询都会导致appx 20-30秒内的明显超时,我将在下面粘贴,尽管我的连接字符串在上面(尝试TIMEOUT = 0,赢了)连接..尝试没有超时,无关紧要。)

帮助?我显然对连接性有限 - 我必须使用64位Excel和64位版本的AutoTag,而另一个我可以使用FINE和Crystal Reports的连接器将无法工作(文件名psqlodbc_08_04_0200)。


异常堆栈:
   错误:57014:由于语句超时而取消语句(DataSourceException)
     错误:57014:由于语句超时(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:由于语句超时而取消语句

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:由于语句超时而取消语句

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()

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

1 个答案:

答案 0 :(得分:9)

我说你的连接字符串中有COMMANDTIMEOUT两次,而第二个设置为20秒,这就是20秒。