DBXL v2.3 を利用したSharePointパフォーマンス向上に関する解析 -送信および、リストの取得
SharePointへの送信
DBXL Ver2.3では、XML文書をSharePointにマップする機能が追加されました。これによって、DBXLを用いたアプリケーションでは、XML文書のデータ保管場所として以下の3つが可能になりました。
- DBXL自身が自動的に DBXL DB内に保管
- DBXLを経由して、マッピングで指定したSQLデータベース に保管
- DBXL を経由して、マッピングで指定したSharePointに保管
SharePointユーザーがDBXL2.3を導入すると、今までどおりSharePointを使いながらも、SQLのデータを使ってSQLレポーティングやその他便利なSQL機能を使うことができます。さらにはXML文書を扱う際のパフォーマンスの向上も、大きな魅力であります。本文書ではDMXLによるパフォーマンス向上に関しての実験結果を示します。
使用環境:
- OS: Windows Server 2003
- DBXL V2.3 & WSS 3.0
- RAM: 1GB
【実験A-1:SharePointへの送信】
10個、50個、…、1000個のXML 文書をSharePointに送信して、所要時間(秒数)を計測。文書としては、InfoPath2007製品に付属の経費明細書を使用した。
- 通常のSharePoint【青】:SharePointフォームライブラリを作成し、文書を送信する(自動送信用バッチを作成して使用)
- SharePoint+DBXL【赤】:DBXLで文書タイプを作成し、DAT(DBXL管理ツール)を用いてSharePointにマップするよう設定。1と同じ文書をDBXLに対して送信する。結果としては、DBXL経由でSharePointに送信されて、1と同様の文書がSharePoint上にできることになる。
送信文書数 |
1: SharePointに直接送信 |
2: DBXL経由でSharePointに送信 |
10 |
73.25 |
27.66 |
50 |
338.56 |
67.65 |
100 |
621.68 |
150.60 |
500 |
3229.54 |
781.24 |
1000 |
6584.04 |
1624.64 |
送信した文書数で所要時間を割り、1文書あたりの秒数をグラフにしたのが下記の図である

文書数にかかわらず、所要時間はほぼ一定であることが分かる。さらには、DBXLを経由して送信した場合(1~3秒)には、直接SharePointに送信した場合(6~7秒)に比べて格段に速いことが示される。
【実験A-2】
次に、よりクライエントの体感に近い測定を行ってみよう。文書一個を送信して各回の所要時間を測定した。20回測定した元データ、および平均と標準偏差のグラフを以下に示す。
- SharePointに直接送信 〔青〕6.2秒±0.7秒
- DBXL経由でSharePointに送信〔赤〕 2.0秒±0.9秒

SharePoint のリストのクエリを行ってInfoPathフォームに表示する際のパフォーマンス
DBXL V2.3にはSharePointのリストを取得する機能もあります。このセクションでは、InfoPath組み込みのSharePointクエリを使用した場合と、DBXLのQuerySharePoint webメソッドを使用した場合のパフォーマンスを比較してみます。
データ:アメリカの50州それぞれの郡の名前(3144個、列として州、および郡を設定)を、SharePointのリストとして作成
【実験B-1】
InfoPathフォームを作成し、このリストをon-loadでロードするときの所要時間を測定。
- 通常のInfoPathソリューション: InfoPathの組み込み関数SharePoint クエリデータ接続を使用。 平均 78.30秒、標準偏差6.6秒
- InfoPath+DBXL: DBXLのQuerySharePoint webメソッドを使用。平均 17.42秒、標準偏差3.1秒。
DBXLのwebサービスを導入することにより、3000個強のリストを取得するのに、78秒から17秒と大幅に所要時間が短縮されましたが、さらにはQuerySharePointにはサーバー側でのフィルタリング機能もあります。あらかじめフィルタリングすると約3000件すべてをロードしなくてもよいので、さらなるスピードアップが期待できます。次の段落では、フィルタリング機能を用いたときの実験結果を述べます。
【実験B-2】
InfoPath製品に付属の出張申告書で、目的地のフィールドを州と郡の2つのドロップダウンリストに変更する。州の欄は、先のSharePointリストから州名のクエリを行ってユニークな値を設定。On-loadの所要時間を測定すると、11.78±1.53秒(10回の計測による平均および標準偏差)となった。(このやり方では約3000件のダウンロードが発生しているために、10秒以上もかかっている。その後ユニークな値を抽出すると50に絞られるが、州名のように固定した値の場合には、別にリストを準備した方が良い実現方法といえよう)
さて、ユーザーがドロップダウンから州名を選んだら、InfoPahフォームは、QuerySharePointでフィルタを指定して、SharePointのリストからその州の郡名を取得する。その際の平均所要時間は2.52±0.16秒となった。
DBXL V2.3の新機能であるQuerySharePointのフィルタリング機能を活用することによって、リストをロードする際の体感速度がさらに向上することがご理解いただけるかと思います。