locked
ファイルアップロード時にアクセス出来なくなる RRS feed

  • 質問

  • いつも参考にさせていただいております。

    hiroz42です。

    ファイルアップロード時にポータルサイトにアクセス出来なく現象が発生していまして、何かいい対処方法があれば教えていただきたいのですが?

    1.どのくらいの大きさのファイルをアップロードした時にアクセス出来なくなるかを知る方法はありますか?

    2.運用している環境は、Windows2003R2 SP2 32bitでメモリは2GB。SQLSever2005とSharePoint2007は1台のサーバ。SharePointServerはSP1です。

    以上、よろしくお願いします。 

    2010年3月26日 7:06

回答

  • こんにちわ

    アップロードする際、ファイルをチャンクサイズに区切ってDBに入れます。

    その際、1回目はInsertになって、DBにロックはかかりませんが、2回目以降はUpdateになりDBでページロックがかかります。

    そうしますと、他のユーザーがアクセスしようとすると、DBからファイル読み込み時にテーブルスキャンになりロック解除をまちます。

    ですので、ファイルアップロードが完了するまでアクセスできません。しかし、アップロードが完了するとアクセスが出来るようになります。

    1回のチャンクサイズはデフォルトで、5MBですので、5MB以上ですとアクセスできない時間が発生します。このチャンクサイズは変更できます。下記URLを参照お願いします。

    http://technet.microsoft.com/en-us/library/cc262061.aspx

    しかし、SQL Serverの機能であるREAD_COMMITTED_SNAPSHOTをONにすると、ロックは全く発生せず、アクセス出来ない時間は発生しませんが、MSさんからこれはサポート出来ませんと言われ、採用を見送りました。

    ですので、チャンクサイズをどれだけにするのか検討するのが良いです。

    あと、アップロード時はチャンクサイズ分、ダウンロード時はチャンクサイズの2倍のメモリをWebサーバーが消費しますので、これを考慮する必要があります。

    以上

    ご確認ください

    • 回答としてマーク hiroz42 2010年3月29日 1:30
    2010年3月26日 8:10

すべての返信

  • こんにちわ

    アップロードする際、ファイルをチャンクサイズに区切ってDBに入れます。

    その際、1回目はInsertになって、DBにロックはかかりませんが、2回目以降はUpdateになりDBでページロックがかかります。

    そうしますと、他のユーザーがアクセスしようとすると、DBからファイル読み込み時にテーブルスキャンになりロック解除をまちます。

    ですので、ファイルアップロードが完了するまでアクセスできません。しかし、アップロードが完了するとアクセスが出来るようになります。

    1回のチャンクサイズはデフォルトで、5MBですので、5MB以上ですとアクセスできない時間が発生します。このチャンクサイズは変更できます。下記URLを参照お願いします。

    http://technet.microsoft.com/en-us/library/cc262061.aspx

    しかし、SQL Serverの機能であるREAD_COMMITTED_SNAPSHOTをONにすると、ロックは全く発生せず、アクセス出来ない時間は発生しませんが、MSさんからこれはサポート出来ませんと言われ、採用を見送りました。

    ですので、チャンクサイズをどれだけにするのか検討するのが良いです。

    あと、アップロード時はチャンクサイズ分、ダウンロード時はチャンクサイズの2倍のメモリをWebサーバーが消費しますので、これを考慮する必要があります。

    以上

    ご確認ください

    • 回答としてマーク hiroz42 2010年3月29日 1:30
    2010年3月26日 8:10
  • tamaki9様

    おはようございます。

    hiroz42です。

    ご回答有難うございました。チャンクサイズの設定が特に無かったみたいなので、5MBでまずは設定をして様子を見てみようかと思います。

    これからもよろしくお願いします。

    2010年3月29日 1:33