すべてのデータが SQL Server データベースに書き込まれるように Microsoft が MOSS を構築した場合、開発のすべてのベスト プラクティスがファイルなどをデータベースの外部、つまりファイル システム上に保持することを提案するのはなぜですか?
ではごきげんよう
すべてのデータが SQL Server データベースに書き込まれるように Microsoft が MOSS を構築した場合、開発のすべてのベスト プラクティスがファイルなどをデータベースの外部、つまりファイル システム上に保持することを提案するのはなぜですか?
ではごきげんよう
SharePointページをカスタマイズしないでおくと、最初の実行時にページの1つのインスタンスをコンパイルし、メモリに保持して、同じ種類のすべてのページで再利用できます。カスタマイズされたページがこの動作を共有しない理由は、それらが一意であり、ApplicationDomainがdllをロードすると、アンロードできないためです。したがって、カスタマイズされたページはすべてのリクエストで解析されます。
Web サイトのユーザーにそれらのファイルを編集させたい場合は、ファイルをデータベースに保持する必要があります。SharePoint は、これらのファイルのほとんどを編集できるように設計されているため、データベースに保存できます。
アプリケーション アーキテクトとして、使用頻度の高いファイル (ページ レイアウト、マスターページなど) がソリューション リリース以外では編集されないことがわかっている場合は、ファイル システムにページを保存するオプションがあります。
ファイル システムに保存すると、データベースのラウンド トリップが不要になるため、読み取りアクセスのパフォーマンスがわずかに向上します。たとえば、マスターページは Web サイトのすべてのページで必要になるため、ファイル システムに保存すると、ユーザーの需要が高い場合のパフォーマンスが向上します。
SQL 2008 がデータベースの "外部" でファイルを管理できるという事実は、この機能が SharePoint にとって望ましいだけではないことを示しています。
パフォーマンスの問題のため: ページ レイアウトを取得するためだけにデータベースへの往復を保存すると、パフォーマンスが低下します。
一方、パフォーマンスのためにローカル ファイル システム上のファイルを使用すると、カスタマイズ オプションが少なくなります。
SharePoint には、ページングをファイル システムにキャッシュするghosingと呼ばれる技術があります。
これは哲学的なアイテムです。トランザクションの整合性は、DB にファイルを格納する利点です。これには、トランザクション ログのバルーニングなどの欠点があります。
SharePoint の将来のバージョンで、MS が SQL 2008 のファイル ストリーム機能を使用して「データベースの外部」にファイルを保存するオプションを提供したとしても、私は驚かないでしょう。