Nếu 100 người dùng yêu cầu 100 tệp 100Mb (được lưu trữ qua FILESTREAM) trong cửa sổ 10 giây, thì hiệu suất SQL Server 2008 có chậm thu thập thông tin không?
Trên loại máy chủ nào ?? Loại phần cứng nào để phục vụ các tệp đó? Loại đĩa nào, mạng, v.v. ?? Rất nhiều câu hỏi .......
Có một bài đăng blog thực sự hay của Paul Randal trên SQL Server 2008:Hiệu suất FILESTREAM - kiểm tra nó ra. Ngoài ra còn có Sách trắng 25 trang về FILESTREAM có sẵn - cũng bao gồm một số mẹo điều chỉnh hiệu suất.
Tuy nhiên, hãy xem Microsoft Research TechReport Tới BLOB hoặc Không tới BLOB .
Đó là một bài viết rất sâu sắc và rất tốt, đặt tất cả những câu hỏi đó thông qua tốc độ của họ.
Kết luận của họ:
Vì vậy, đánh giá từ điều đó - nếu các đốm màu của bạn thường nhỏ hơn 1 MB, chỉ cần lưu trữ chúng dưới dạng VARBINARY (MAX) trong cơ sở dữ liệu. Nếu chúng thường lớn hơn, thì chỉ cần tính năng FILESTREAM.
Tôi sẽ không lo lắng nhiều về hiệu suất hơn là các lợi ích khác của FILESTREAM đối với việc lưu trữ "không được quản lý" trong thư mục tệp NTFS:lưu trữ tệp bên ngoài cơ sở dữ liệu mà không có FILESTREAM, bạn không có quyền kiểm soát chúng:
- không có kiểm soát truy cập nào được cung cấp bởi cơ sở dữ liệu
- các tệp không phải là một phần của bản sao lưu SQL Server của bạn
- các tệp không được xử lý theo giao dịch, ví dụ:bạn có thể kết thúc với các tệp "thây ma" không được tham chiếu từ cơ sở dữ liệu nữa hoặc các mục nhập "bộ xương" trong cơ sở dữ liệu mà không có tệp tương ứng trên đĩa
Chỉ riêng những tính năng đó đã khiến việc sử dụng FILESTREAM trở nên hoàn toàn xứng đáng.