有没有办法在不增加DTU的情况下增加SQL Azure的远程查询超时?

时间:2017-10-12 20:57:19

标签: ssis azure-sql-database timeoutexception

我在SSIS包中选择行时出现超时...(完整的错误详情如下)。

  • 查询在SSMS中运行3分钟。
  • 我的SQL Azure服务器具有Standard1规模(20DTU)。
  • 经过的时间总是30秒。
  • 我确实修复了"连接超时"并设置值300(5分钟)
  • 我无法运行

    EXEC sp_configure'远程查询超时',300;

    因为它是SQL Azure。

除了增加DTU之外,有没有办法将远程连接扩展到azure服务器? 我的唯一目的是偶尔对SSIS进行一些大问题......

  

错误:System.Data.SqlClient.SqlException(0x80131904):执行超时已过期。操作完成之前经过的超时时间或服务器没有响应。 ---> System.ComponentModel.Win32Exception(0x80004005):等待操作超时     在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action 1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)     在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)     在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean& dataReady)     在System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()     在System.Data.SqlClient.SqlDataReader.get_MetaData()     在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString,Boolean isInternal,Boolean forDescribeParameterEncryption)     at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 timeout,Task& task,Boolean asyncWrite,Boolean inRetry,SqlDataReader ds,Boolean describeParameterEncryptionRequest)     在System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔returnStream,字符串方法,TaskCompletionSource`1完成的Int32超时,任务&安培;任务,布尔&安培; usedCache,布尔asyncWrite,布尔inRetry)     在System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String method)     在System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior,String method)     在System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior行为)     在System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior行为)     在Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.PreExecute()     在Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100包装器)

2 个答案:

答案 0 :(得分:4)

对于I / O密集型工作负载,您应该使用Premium级别。在运行这些工作负载之前进行扩展,并在SSIS包完成后扩展到Standard。请在运行SSIS包时检查DTU消耗,您可能会发现工作负载达到了层级限制,并且会发生限制。

还请将异步处理设置为True。有关它的更多信息,请点击here。将连接超时设置为零。

希望这有帮助。

答案 1 :(得分:1)

我不认为可以增加Azure SQL的“远程查询超时”配置。到今天为止,还没有直接的信息存在,为什么它在Azure SQL中不可用, 通过sp_configure在本地版本的SQL Server中可能实现相同的目的。我对此的疯狂猜测是,让任何查询无限期地运行将阻碍高可用性并故障转移MS的体系结构承诺

很少有数据库配置设置可以使用ALTER DATABASE SCOPED CONFIGURATION Transact sql在Azure SQL中进行修改。可以找到更多信息here

我有一个用例,它每个月通过SQL JOB运行维护脚本,该脚本以P11高级版运行6个小时,我敢肯定,将高级版提高到P14不会有任何影响。当前,这是从SSMS手动执行的。找到选项后,我会及时发布消息