none
继续请教并行处理的问题,请Teige Gao和其他大侠继续赐教,谢谢! RRS feed

  • 问题

  • 按照https://www.codeproject.com/Articles/29356/Asynchronous-T-SQL-Execution-Without-Service-Broke做了测试,结果发现运行结果不稳定,执行时间短的(比如几秒到几分钟的)大部分时间不出错,偶尔出错,执行时间长的(比如30分钟以上的)次次都出错。

    err_stack的详细信息如下:

    System.Data.SqlClient.SqlException:    在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)     在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)     在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)     在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)     在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)     在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()     在 SqlClrLib.Model.ThreadSql.ExecuteSql(String connectionString, String sql, Int32 commandTimeout, DependentTransaction dtx)

    我的操作如下:把上述链接中给的SqlClrLib.dll复制到服务器的D:\My Projects\SqlClrLib\SqlClrLib中,然后运行Deployment.sql,最后修改文中给的示例脚本,修改为执行存储过程,然后在数据库中执行这段代码。

    不明白为什么会有报错,请Teige Gao和其他大侠赐教,谢谢!

    2018年9月25日 7:22

答案

  • 测试完ssis包没有问题之后,我们需要把它部署到SQL Server,具体部署方法参考这一篇:https://blog.csdn.net/CodeRookieGuo/article/details/50471123,这一篇博客里面有相关的SSIS安装部署等基础内容,请参考。

    部署完成之后就可以创建JOB,然后再Step里面选择相应的内容:


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 Tim-2009 2019年1月28日 7:17
    2018年9月26日 2:40
    版主

全部回复

  • Hi Tim-2009,

    看错误信息的话,应该是连接超时了,我之前用这个代码测试的时候由于执行时间不长,并没有出现类似的问题。

    这个方法只是一个变通方法,可能会不太稳定,在生产环境里,还是建议使用SSIS的方法,SSIS比较稳定。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月25日 9:17
    版主
  • Hi Tim-2009,

    看错误信息的话,应该是连接超时了,我之前用这个代码测试的时候由于执行时间不长,并没有出现类似的问题。

    这个方法只是一个变通方法,可能会不太稳定,在生产环境里,还是建议使用SSIS的方法,SSIS比较稳定。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    谢谢,请问还有SSIS的参考资料吗,我看到你上次给的资料是一个提出的问题,再次感谢!
    2018年9月25日 12:07
  • 只是执行时间长的出错,并且是超时错误,那么你设置过 Parallel_SetOption_CommandTimeout 了么?
    2018年9月26日 1:13
  • 做了一个demo,演示了一下并行执行和非并行。如果前面还需要步骤的话,可以拖入一个序列容器,然后在序列容器内拖入两个“执行SQL任务”,然后为两个任务配置相应的语句,最终如下图所示。如果前面没有任务,就直接拖入两个“执行SQL任务”就可以了


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月26日 2:24
    版主

  • MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月26日 2:27
    版主
  • 测试完ssis包没有问题之后,我们需要把它部署到SQL Server,具体部署方法参考这一篇:https://blog.csdn.net/CodeRookieGuo/article/details/50471123,这一篇博客里面有相关的SSIS安装部署等基础内容,请参考。

    部署完成之后就可以创建JOB,然后再Step里面选择相应的内容:


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 Tim-2009 2019年1月28日 7:17
    2018年9月26日 2:40
    版主
  • 其他步骤和创建一般的JOB区别不大,有什么问题,欢迎继续询问

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月26日 2:41
    版主
  • 只是执行时间长的出错,并且是超时错误,那么你设置过 Parallel_SetOption_CommandTimeout 了么?

    设置了,在SQL语句中设置的

    2018年9月26日 3:10
  • 我这里的数据库还都是SQLSERVER 2008的,请问这个可以吧?


    2018年9月26日 7:51
  • SQL Server 2008和2016的在这个功能上的区别不是很大

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年9月26日 7:58
    版主
  • SSIS 太麻烦了吧,开销也大,还不如用SSB。

    想不想时已是想,不如不想都不想。

    2018年9月27日 3:52
    版主
  • SSIS 太麻烦了吧,开销也大,还不如用SSB。

    想不想时已是想,不如不想都不想。

    2000时代用过dts后,到后来的SSIS,真心觉得好用,只是学习曲线比较漫长。

    PS.SSB是啥能否赐教!


    family as water

    2018年9月27日 11:22