SQL Server の FILESTREAM 機能を使用してドキュメントをデータベースに保存する場合、ファイル サイズを処理する適切な方法は何ですか?
ファイルストリーム列でTSQL コマンドを使用できることは知っていますが、この Microsoft の記事DATALENGTH()
に関しては、これが常に最良のアイデアであるとは限りません。
アプリケーションで大量の BLOB ファイルのデータ長を取得することは避けてください。サイズは SQL Server データベース エンジンに保存されないため、これは時間のかかる操作です。BLOB ファイルの長さを決定する必要がある場合は、Transact-SQL DATALENGTH() 関数を使用して、BLOB が閉じている場合のサイズを決定します。DATALENGTH() は、BLOB ファイルを開いてそのサイズを決定するわけではありません。
上記が可能であれば DATALENGTH() を避けるべきだと言っているのか、それともファイルサイズを取得するための推奨される方法なのか、私には少しわかりません。
メタデータとしてユーザーに表示するためにドキュメント サイズに頻繁にアクセスする必要がある場合、それらを取得するための推奨される方法は何ですか? それらを別のフィールドに保存しますか?または、datalength() は十分に高速ですか?