質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.63%

SQLServerReportingServiceの帳票表示時間の短縮をしたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,478

zai

score 10

前提・実現したいこと

  • Windows2003Server32bit 
  • SQLServer2008R2
    のサーバーを
  • Windows2012Server64bit
  • SQLServer2014
    にリプレイスすることになり、VB.NETを利用したWebアプリケーションと
    ReportingServiceをあわせて移行することになりました。
    サーバーは1台から1台への移行です。

移行について、
Webの画面およびReportingServiceの帳票画面が
表示するところまではできたのですが、
一部の帳票で、旧サーバーより新サーバーのほうが
表示に時間がかかるようになりました。

処理時間を旧サーバーと同等かそれより短縮させたいのですが、
パフォーマンス絡みの対応方法がわからず行き詰っております。

発生している問題・エラーメッセージ

たとえば、
旧サーバーで、5秒から6秒で表示していた帳票が
新サーバーで、2分30秒かかっています。

WindowsServer、SQLServer、ReportingServiceの
設定等で確認したほうがよい項目や参考情報等、
ご存知でしたら教えて頂きたいです。

試したこと

下記サイトに記載されていたことをいくつか試しました。
https://blogs.msdn.microsoft.com/dataplatjp/2016/10/28/sql-server-2016-%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%99%82%E3%81%AE%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%83%99%E3%82%B9%E3%83%88/

  1. SQL Server サービスアカウントの設定
    メモリ内のページのロック
    [コンピュータの構成] → [Windows の設定] → [セキュリティの設定] → [ローカルポリシー] → [ユーザー権限の割り当て] → [メモリ内のページロック] 権限を SQL Server 起動アカウントに付与

  2. 電源設定
    コントロールパネル⇒システムとセキュリティ⇒電源オプション
    高パフォーマンスに変更

この1・2の対応で、2分30秒から2分に短縮できております。

また、tempdbのファイルをCPU数もしくは8の倍数に設定するとよいという情報がありましたので、1から8に変更しましたが、こちらでは短縮できませんでした。

ReportServerデータベースの「ExecutionLogStorage」テーブルで
遅い帳票の「TimeDataRetrieval」が旧サーバーと新サーバーで
差が大きくなっています。
旧サーバー:2928ms
新サーバー:111720ms
この項目はデータの取得にかかった時間のようですが、
帳票表示で実行するクエリをSQLServerManagementStudioで実行しても
数秒(5秒程度)で結果が返ってきています。

何が原因なのかどうアプローチしたらよいのかわからない状態です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

こんばんは。
今使っている立場ではないのですが、少しでもお役に立てたらと思いまして、コメントしますね。
データは新しいDBに移行されたと思いますので、内容としては変わらないとしまして...。
こんなスレッドがありましたので添えてみます。

(1) 2008 -> 2012 / 2014へ移行後遅くなった事例

おなじような事例だと思いますので、MSDNのフォーラムのものを貼っておきます。
ログに何か情報が出ているかもしれませんね。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e04b3925-4eb2-4216-8669-b610a9d9cdd0/ssrs-report-rendering-is-slow-in-2014-ssrs-server?forum=sqlreportingservices

(2) レポート定義ファイルを新しくする

レポート定義ファイルはSQL Server2008の時に作成したものをそのまま利用している形でしょうか。
バックアップなど保持した上で、2014の形式にアップグレードしてみては如何でしょうか。
そのままでは定義ファイルはアップグレードされないようです。
(的を外していたらすみません。また、十分バックアップしてください)

https://stackoverflow.com/questions/16030633/sql-server-reporting-services-very-slow-after-migration

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/16 15:51

    ご回答ありがとうございます。
    (2)レポート定義ファイルを新しくする について
    SQLServerDataToolをインストールし、VisualStudio2015にて対象レポートの
    TargetServerVersionをSQLServer2008から「SQL Server 2008 R2、2012 または 2014」に変更し、
    リビルドした後、ReportServerにアップロードしましたが、表示速度は変わりませんでした。
    エラー等の確認をしてみます。

    キャンセル

  • 2017/06/19 12:26

    レポートに表示するデータを取得するクエリを改善したところ
    旧サーバーより速くなりました。

    (1) 2008 -> 2012 / 2014へ移行後遅くなった事例
    に記載頂いたURLの情報にもデータ取得に時間がかかっている場合は
    クエリをチューニングするとよいという情報が記載されておりました。

    情報のご提供ありがとうございました。

    キャンセル

0

SQLServerの業務DBとReportServerDBの両方の互換性を2014から2008に落とすと、
表示速度は同等になりました。
変更前は、どちらも2014でした。
他の帳票含め、2008にしたことで速度に影響していないか再測定します。

2017/06/16追記
再測定した結果、問題の帳票は、同等まで速くなりましたが、
別のReportingServiceを使わないExcel出力の処理が、10秒から30秒と遅くなってしまったため、
互換性を2014に戻して、回答して頂いた内容を試そうと思います。

レポートに表示するクエリをクエリで抽出した結果を仮にテーブルに格納しておいて、
そのテーブルから取得するだけのクエリに変更すると
旧サーバーより大分速く表示されるようになりましたので、クエリが遅いようです。
サーバーで直でクエリを実行すると遅くないのですが。。。
クエリを分析し、修正しようと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/19 12:26

    クエリの改善で、旧サーバーより速くなりましたので解決と致します。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる