当数据源在Azure上时,SSRS报告缓慢

时间:2017-04-25 16:39:59

标签: reporting-services azure-sql-database

我有一个已经存在几年的现有SSRS实例。数据DB位于同一个框中,报告总是非常快速地加载。

我将数据DB移到Azure并且渲染时间已经飙升。数据集是在SSMS中在不到一秒的时间内执行的存储过程。此报告也会在BIDS中立即加载。一旦它在SSRS服务器上,它需要30秒。

Azure上的数据:

    <EstimatedMemoryUsageKB>
    <Pagination>4</Pagination>
    <Processing>13</Processing>
  </EstimatedMemoryUsageKB>
  <DataExtension>
    <SQLAZURE>1</SQLAZURE>
  </DataExtension>
  <Connections>
    <Connection>
      <ConnectionOpenTime>1</ConnectionOpenTime>
      <DataSets>
        <DataSet>
          <Name>ProjectTasks</Name>
          <RowsRead>9</RowsRead>
          <TotalTimeDataRetrieval>30034</TotalTimeDataRetrieval>
          <QueryPrepareAndExecutionTime>0</QueryPrepareAndExecutionTime>
          <ExecuteReaderTime>22</ExecuteReaderTime>
          <DataReaderMappingTime>0</DataReaderMappingTime>
          <DisposeDataReaderTime>0</DisposeDataReaderTime>

与SSRS在同一服务器上的数据:

  <EstimatedMemoryUsageKB>
    <Pagination>4</Pagination>
    <Processing>12</Processing>
  </EstimatedMemoryUsageKB>
  <DataExtension>
    <SQL>1</SQL>
  </DataExtension>
  <Connections>
    <Connection>
      <ConnectionOpenTime>1</ConnectionOpenTime>
      <DataSets>
        <DataSet>
          <Name>ProjectTasks</Name>
          <RowsRead>8</RowsRead>
          <TotalTimeDataRetrieval>1</TotalTimeDataRetrieval>
          <QueryPrepareAndExecutionTime>0</QueryPrepareAndExecutionTime>
          <ExecuteReaderTime>1</ExecuteReaderTime>
          <DataReaderMappingTime>0</DataReaderMappingTime>
          <DisposeDataReaderTime>0</DisposeDataReaderTime>
        </DataSet>

我的所有报告都没有发生这种情况,其中数据在Azure上,只有一些。我已经尝试使用RECOMPILE,OPTION OPTIMIZE修改我的存储过程,并将SP的参数分配给内部变量。没有什么能改变TotalTimeDataRetrieval。

我的Azure数据库是S2标准版(50个DTU)。我还没有看到它整天超过1%或2%。 enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定某些内容是否被错误地缓存或实际原因是什么,但我注意到我的问题报告都有一个存储过程作为数据集的查询类型。我将其更改为文本,问题就消失了。我将其更改回存储过程并且仍然是固定的。

我在问题中的子报告从30秒到450毫秒。整体报告从2.5分钟变为4秒。