18

SQLServer2008のFILESTREAM機能についていくつか質問がありました。

  1. FILESTREAM機能を使用してSQLServer2008からストリーミングされたファイルを返す場合と、共有ディレクトリからファイルに直接アクセスする場合のパフォーマンスの違いは何でしょうか。

  2. 100人のユーザーが10秒のウィンドウ内に100個の100Mbファイル(FILESTREAM経由で保存)を要求した場合、SQL Server 2008のパフォーマンスは低下しますか?

4

2 に答える 2

24

100人のユーザーが10秒のウィンドウ内に100個の100Mbファイル(FILESTREAM経由で保存)を要求した場合、SQL Server 2008のパフォーマンスは低下しますか?

どんなサーバーに?それらのファイルを提供するためのハードウェアの種類は何ですか?どんなディスク、ネットワークなど?? 非常に多くの質問.......

SQL Server2008に関するPaulRandalによる本当に良いブログ投稿があります:FILESTREAMパフォーマンス-それをチェックしてください。FILESTREAMに関する25ページのホワイトペーパーも利用可能です。パフォーマンス調整のヒントもいくつか取り上げています。


ただし、Microsoft Research TechReportToBLOBまたはNotToBLOBも確認してください。

それは非常に深遠で非常によく基づいた記事であり、それらすべての質問を彼らのペースに通しました。

彼らの結論:

この調査によると、オブジェクトが平均して1メガバイトを超える場合、NTFSはSQLServerよりも明らかに有利です。オブジェクトが 256キロバイト未満の場合、データベースには明らかな利点があります。この範囲内では、ワークロードの書き込み集約度と、システム内の一般的なレプリカの保存期間によって異なります。

したがって、それから判断すると、ブロブが通常1 MB未満の場合は、データベースにVARBINARY(MAX)として格納するだけです。それらが通常より大きい場合は、FILESTREAM機能だけです。

NTFSファイルフォルダ内の「管理されていない」ストレージに対するFILESTREAMの他の利点よりも、パフォーマンスについてはそれほど心配しません。FILESTREAMなしでデータベースの外部にファイルを保存すると、それらを制御できなくなります。

  • データベースによって提供されるアクセス制御はありません
  • ファイルはSQLServerバックアップの一部ではありません
  • ファイルはトランザクション処理されません。たとえば、データベースから参照されなくなった「ゾンビ」ファイルや、ディスク上に対応するファイルがないデータベースの「スケルトン」エントリが発生する可能性があります。

これらの機能だけでも、FILESTREAMを使用する価値があります。

于 2009-12-29T21:42:34.827 に答える
7

Win32でFILESTREAMを読み取るのは非常に高速です。Win32を使用したFILESTREAMデータの管理を参照してください。ただし、 FILESTREAMのベストプラクティスに従う必要があります。結局のところ、これがSharepointの原動力であり、MSはパフォーマンスの低いストレージに対してOffice(== Sharepoint)ほど重要なものを賭けません。FILESTREAMに関するいくつかのケーススタディとホワイトペーパーがあります。SQLServerを使用したF1レーシングデータのLarenElectronicsFuels Analysisを掘り下げることしかできませんでしたが、より詳細な数値データがもっとあることを知っています。正しく思い出せば、FILESTREAMは一般に、特定のファイルサイズを超えると、SMBのパフォーマンスを約90〜95%の割合でシャドウイングすることを示しています。小さなファイルの場合、FILESTREAMAPIハンドルを取得するオーバーヘッドが現れ始めます。

私はまた、このトピックに関する研究論文を読むことを勧めるのに2番目のマークです(彼女がこの仕事について話している、iTunesポッドキャストでも利用可能なCatharine van Ingenとのチャンネル9のインタビューもあります)が、この論文を覚えておいてくださいFILESTREAMが正式にリリースされる前の2006年に公開されているため、FILESTREAMの詳細は考慮されていません。

2番目の質問については、システムの容量ではなく負荷を指定するだけでパフォーマンスについて質問するのは無意味です。大量のストレージSANを備えた128CPUスーパードームは、負荷に気付くことさえありません。スパイウェアが山ほどある256MBのラップトップで実行されているSQLは、負荷を確認することすらできません...

于 2009-12-29T21:52:11.667 に答える