zoukankan      html  css  js  c++  java
  • SSRS 制作报表时报错: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。

    转载注明出处,原文地址:http://www.cnblogs.com/zzry/p/5718739.html 

    在用ssrs 制作报表时报如下错误 错误信息截图:

     

    看到如上错误第一个想到的解决方法就是改配置之类的设置了 不过发现更改后都没有生效 

    改过的地方比如上图的【超时值(秒)/(M)】  改到很大99999999依然没有效果

    网上查了下 改下面两个值 好像也无济于事

    于是乎 ,换个思路,跟踪后台sql 看看到到底在执行什么玩意

     我报表里执行了类似下面的代码

    exec SP_DM_test @begtime ,@endtime --内容不贴了,因为要计算的结果集过亿导致运行这个sp耗时在几分钟左右
    SELECT   [c1]  ,[c2] ,[c3] ,[c4] FROM test1

    开启SQL Server Profiler (不会使用的可以百度下 这里给了链接:http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html)

    1.SQL Server Profiler 开启后,点击下图的【刷新字段】按钮

    2.不输参数,直接跑 点击确定  

    3.查看SQL Server Profiler

    4.如上图 问题看上去清晰了,这玩意预先执行了代码。

    那可以从这个点着手修改代码,下面是一个参考,思路是就是让空参数的情况下既能拿到字段,也能通过预执行

    比如写成如下样式

    IF ISNULL(@begtime, '') = ''
        OR ISNULL(@endtime, '') = ''
        BEGIN
            SELECT  [c1] ,
                    [c2] ,
                    [c3] ,
                    [c4]
            FROM    test1; --得让他查到字段,不然结果集dataset那里刷不出来字段
            RETURN; 
        END;
    ELSE
        BEGIN
    
            EXEC SP_DM_test @begtime, @endtime; --存储过程里有三个逻辑 1.truncate table test1 2.计算结果集 3.计算后结果插入test1
    
            SELECT  [c1] ,
                    [c2] ,
                    [c3] ,
                    [c4]
            FROM    test1;
    
        END;

    好了,在点击那个刷新字段按钮就不错了。问题解决。

    总结:

    1.跟踪后台预执行的sql

    2.尝试修改逻辑满足让空参数的情况下既能拿到字段,也能通过预执行允许的时长。

    转载注明出处,原文地址:http://www.cnblogs.com/zzry/p/5718739.html 

     

  • 相关阅读:
    【学】SoapExtension 学习
    【原】SQL ROW_NUMBER() OVER
    java线程(四)
    java线程(三)
    java线程(二)
    java线程(一)
    编写自己的一个简单的web容器(二)
    编写自己的一个简单的web容器(一)
    java网络编程基础
    spring 数据校验之Hibernate validation
  • 原文地址:https://www.cnblogs.com/zzry/p/5718739.html
Copyright © 2011-2022 走看看