開発したアプリケーションで,ローカルドライブのファイルにアクセスすると問題ないが,クライアントドライブのファイルにアクセスするとローカルに比べて非常に遅い.なお,エクスプローラでクライアントドライブのファイルにアクセスした場合は,このような現象は見られない.
技術ノート
2010/06/30
[番号]
技術ノート KGTN 2010070101
[現象]
開発したアプリケーションで,ローカルドライブのファイルにアクセスすると問題ないが,クライアントドライブのファイルにアクセスするとローカルに比べて非常に遅い.なお,エクスプローラでクライアントドライブのファイルにアクセスした場合は,このような現象は見られない.
[説明]
クライアントドライブのファイルにアクセスする場合,その処理 (機能) が呼び出すWindowsのAPIを 「ネットワークを介して」 クライアント側へ転送し,クライアント側で実行し,そしてその結果を 「ネットワークを介して」 サーバ側へ返します.1つの処理は多数のAPIを呼び出しますので,その数に比例してネットワークを介した処理が増加し,結果的にローカルドライブに比べ速度が低下することがあります.このような場合は,クライアントドライブにあるファイルを一旦ローカルドライブにコピーし,アプリケーションはコピーしたファイルを参照するのが良い方法です.
また,ファイルオープンのダイアログでプレビュー機能が実装されているアプリケーションでは,その処理の中でクライアントドライブにあるファイル (の内容) を読むことになりますので,ローカルドライブに比べ速度がかなり低下します.このような場合は,プレビュー機能を使用しないような仕様変更等をご検討下さい.