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

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

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

2回答

6339閲覧

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

zai

総合スコア12

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2017/06/15 05:42

編集2017/06/15 05:50

###前提・実現したいこと

  • 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 起動アカウントに付与

  1. 電源設定

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

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

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/15 12:37

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zai

2017/06/16 06:51

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

2017/06/19 03:26

レポートに表示するデータを取得するクエリを改善したところ 旧サーバーより速くなりました。 (1) 2008 -> 2012 / 2014へ移行後遅くなった事例 に記載頂いたURLの情報にもデータ取得に時間がかかっている場合は クエリをチューニングするとよいという情報が記載されておりました。 情報のご提供ありがとうございました。
guest

0

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

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

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

投稿2017/06/15 10:24

編集2017/06/16 11:10
zai

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zai

2017/06/19 03:26

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問