我正在尝试使用名为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()
最终更新:根据提供的解决方案突出显示上述连接字符串中的问题。
答案 0 :(得分:9)
我说你的连接字符串中有COMMANDTIMEOUT
两次,而第二个设置为20秒,这就是20秒。