Project Server のビュー表示がタイムアウトする場合の対処方法について

こんにちは、SharePoint サポートの森村です。
オンプレミス版の Project Server 2016/2013/2010/2007 にて発生しうる現象への対処方法についてご紹介いたします。

目次
1. 現象例 2. 詳細、および対処方法 3. 補足情報
1. 現象例
Project Server の Project Web App サイト上にて、例えば [タスク] や [プロジェクト センター] 等のビューを表示する際に、30 秒~数分程度待った後に、下記のような「不明なエラーが発生しました」というエラーが表示される場合があります。
この場合は SQL Server 上の処理がタイムアウトしている可能性が高い状態となります。

図 1 : Project Server 2010 の [タスク] ページでのエラー画面例 (不明なエラーが発生しました、と表示されます)

2. 詳細、および対処方法

Project Server 製品では、SQL Server 上にデータを保存しております。
Project Web App サイト上にてプロジェクトのデータ等を表示する場合、SQL Server 上のデータベースにクエリを実行し、その結果返される内容を表示する、という動作を行っております。

通常、SQL Server 上のデータベースでは、データの更新がある一定数行われるたびに「統計情報」と呼ばれるクエリプラン作成に使用する情報を自動的に更新し、その時点で最適なクエリ実行を行う機能が標準で有効となっております。
SharePoint Server のコンテンツ データベースはこの統計情報を更新を OFF にしていますが、Project Web Apps のデータベースは統計情報の自動更新を使用します。
このため、Project Web App 上でのデータの更新度合いによっては、SQL Server による自動更新よりも高い頻度で統計情報を更新する必要がある状態となる可能性があります。
この場合、適切ではないクエリプランが実行され、クエリ実行に時間がかかり、その結果 Project Web App 上の表示に必要な処理がタイムアウトし、エラーとなる現象が発生いたします。
この点の詳細につきましては、弊社 SQL Server サポート チームのブログをご参考にしていただけますと幸いです。

タイトル : 統計情報の自動更新が ON の時には統計情報を手動で更新する必要はない?
アドレス : https://blogs.msdn.com/b/jpsql/archive/2012/04/19/on.aspx

本現象はすべての環境で発生する現象ではなく、環境およびデータ依存の現象のため、現象が発生する状態となった場合は、下記の対処方法の実行をお願いいたします。
なお、データベースの統計情報の更新のため、実データの変更は発生せず、このため保存しているデータ内容自体に対して影響はありません。
また、通常 sp_updatestats の処理は数秒~数十秒で完了いたしますが、データベースの規模、サーバーのスペックによっては処理に時間がかかる場合も考えられるため、業務時間外などの時間帯をご検討ください。

統計情報の更新
=============

  1. SQL Server を実行している PC に SQL Server の管理者権限を持つアカウントにてログオンします。

  2. スタート メニューから [SQL Server Management Studio] を起動します。

  3. [サーバーの種類] が [データベース エンジン]、[サーバー名] が該当 SQL Server の PC 名であることを確認し、[接続] をクリックします。

  4. 左側の [オブジェクト エクスプローラ] にて、[データベース] を展開し、ご利用中の PWA サイトが使用するデータベース名を確認します。

       Project Server 2016 の場合の例 : WSS_Content 等の、PWA サイト コレクションが含まれるコンテンツ データベース
       Project Server 2013 の場合の例 : ProjectWebApp
       Project Server 2010/2007 の場合の例 : ProjectServer_Archive、ProjectServer_Draft、ProjectServer_Published、ProjectServer_Reporting

  5. メニューバー上の [新しいクエリ] を選択します。

  6. 以下のクエリ文を入力し、[!実行] ボタンをクリックします。(データベース名部分は 4. で確認した名前に変更します。)

    -- Project Server 2016 の場合
    use <PWA サイトが含まれるコンテンツ データベース名>
    sp_updatestats

    -- Project Server 2013 の場合
    use <Project Web App データベース名>
    sp_updatestats

    -- Project Server 2010 の場合
    use <Project Web App アーカイブ データベース名>
    sp_updatestats
    use <Project Web App 下書き データベース名>
    sp_updatestats
    use <Project Web App 発行済み データベース名>
    sp_updatestats
    use <Project Web App レポート データベース名>
    sp_updatestats

  7. ブラウザーにて Project Web App サイトを表示し、[タスク] 等のエラーとなったページの動作を確認します。


3. 補足情報

関連情報を下記 TechNet ページにてご案内しております。
Project Server 2016/2013 の場合も基本的には同様のメンテナンス計画をご検討ください。

タイトル : Project Server 2010 のデータベース メンテナンス計画
アドレス : https://technet.microsoft.com/ja-jp/library/cc973097(v=office.14).aspx

タイトル : Project Server 2007 のデータベース メンテナンス計画
アドレス : https://technet.microsoft.com/ja-jp/library/cc973097(v=office.12).aspx

対処方法実施後もすぐに動作が重くなる、同様のエラーとなる、等の場合は、データベース PC の処理能力がデータ量に対し足りていないことが考えられます。
この場合は仮想 PC から物理 PC への変更を検討する、より高速なディスクの使用を検討する、より大規模なファーム構成を検討する、等、処理能力の向上をご検討ください。

今回の投稿は以上です。