[Hỏi] Có nên lưu ảnh,file trực tiếp vào sql server

Liên hệ QC

An.BA

Thành viên thường trực
Tham gia
15/9/18
Bài viết
223
Được thích
170
Giới tính
Nam
Em chào mọi người ạ.
Em có viết phần mềm kết nối đến sql server qua mang lan và nội bộ. Em có phần lưu ảnh,file pdf (giấy tờ chứng minh cho từng học sinh) em tham khảo thì mọi người bảo không nên lưu trực tiếp vào database sẽ bị nặng nhưng nếu không lưu vào đó thì em lưu vào đâu để mọi người qua mạng đều có thể đọc được mà không ảnh hưởng đến tốc độ truy cập vào databse ạ.
Em cảm ơn~
 
Upvote 0
Hồi nào đến giờ tôi chưa được hân hạnh làm chủ một cái SQL Server bao giờ cho nên hổng biết có nên không.
Chỉ biết rằng lưu file (ảnh thì chắc cũng là file?) vào thì mấy thằng admin nó dẫy nẩy.
Phay phiếc gì đó thì chỉ lưu theo đường dẫn. Và năn nỉ mấy thằng admin chúng cho mình đủ quyền để truy cập tới lui.
(folder/s chứa đống file/s chỉ cho users của bên SQLS read,... rắc rối bỏ bố)
 
Upvote 0
Hồi nào đến giờ tôi chưa được hân hạnh làm chủ một cái SQL Server bao giờ cho nên hổng biết có nên không.
Chỉ biết rằng lưu file (ảnh thì chắc cũng là file?) vào thì mấy thằng admin nó dẫy nẩy.
Phay phiếc gì đó thì chỉ lưu theo đường dẫn. Và năn nỉ mấy thằng admin chúng cho mình đủ quyền để truy cập tới lui.
(folder/s chứa đống file/s chỉ cho users của bên SQLS read,... rắc rối bỏ bố)
Mô hình bài #1 đâu có ác mìn. Nếu có thì chúng đã tự sắp xếp server có Sql và thư mục lưu phai đâu ra đó, và hướng dẫn cụ thể cho người dùng. Vậy việc đầu tiên nên làm là đi mướn thằng ác mìn về cho nó tổ chức ra 1 server bài bản cho toàn cty xài, xong xuôi đuổi việc ác mìn, tiết kiệm chi phí.
 
Upvote 0
... việc đầu tiên nên làm là đi mướn thằng ác mìn về cho nó tổ chức ra 1 server bài bản cho toàn cty xài, xong xuôi đuổi việc ác mìn, tiết kiệm chi phí.
Rất tiếc là thằng ác mìn nào có khả năng một chút thì nó đã nhận ra cái dã tâm của bạn và nó sẽ cài một vài cái gì đó. Một tháng sau sẽ có người lên đây hỏi:
"... người làm trước em đi mà để lại một đống chả ai bết phải làm gì..."
 
Upvote 0
Rất tiếc là thằng ác mìn nào có khả năng một chút thì nó đã nhận ra cái dã tâm của bạn và nó sẽ cài một vài cái gì đó. Một tháng sau sẽ có người lên đây hỏi:
"... người làm trước em đi mà để lại một đống chả ai bết phải làm gì..."
Sao lại không biết làm gì? Lần trước đã khôn ra rồi thuê ác mìn thì lần này sao lại phải hỏi? Gọi cho nó, xin lỗi nó, năn nỉ nó, rồi chi "bộn tiền" để nó cứu
 
Upvote 0
Em có viết phần mềm kết nối đến sql server qua mang lan và nội bộ. Em có phần lưu ảnh,file pdf (giấy tờ chứng minh cho từng học sinh) em tham khảo thì mọi người bảo không nên lưu trực tiếp vào database sẽ bị nặng nhưng nếu không lưu vào đó thì em lưu vào đâu để mọi người qua mạng đều có thể đọc được mà không ảnh hưởng đến tốc độ truy cập vào databse ạ.

Từ SQL Server 2008 trở lên đã có hỗ trợ lưu các file: ảnh, pdf, excel ... (nói chung là không phải file CSDL) vào folder của hệ thống (FileStream), không cần lưu trực tiếp vào Database. FileStream sẽ sử dụng bộ nhớ Cache của hệ điều hành để xử lý chứ không dùng bộ nhớ đệm của riêng SQL Server nên việc truy vấn dữ liệu trong SQL Server không bị ảnh hưởng gì.
FileStream sẽ lưu dữ liệu dưới dạng varbinary (max) - BLOB. Khi cần lưu và đọc file ảnh, pdf, text..vào/ từ FileStream filegroup thì dùng ADO Stream để chuyển file thành binary.
Em tự tìm tài liệu về FileStream để ngâm cứu nhé.

À trong Access 2010 trở lên thì "Image" control có thêm thuộc tính "PictureData" có thể đọc trực tiếp dữ liệu dạng Binary rất tiện lợi.
Vd: Me.imgHinhNV.PictureData = adoRS.Fields("ImageData").Value
- [ImageData] là field lưu hình ảnh dưới dạng varbinary (max) trong table của SQL Server.
 
Lần chỉnh sửa cuối:
Upvote 0
Từ SQL Server 2008 trở lên đã có hỗ trợ lưu các file: ảnh, pdf, excel ... (nói chung là không phải file CSDL) vào folder của hệ thống (FileStream), không cần lưu trực tiếp vào Database. FileStream sẽ sử dụng bộ nhớ Cache của hệ điều hành để xử lý chứ không dùng bộ nhớ đệm của riêng SQL Server nên việc truy vấn dữ liệu trong SQL Server không bị ảnh hưởng gì.
FileStream sẽ lưu dữ liệu dưới dạng varbinary (max) - BLOB. Khi cần lưu và đọc file ảnh, pdf, text..vào/ từ FileStream filegroup thì dùng ADO Stream để chuyển file thành binary.
Em tự tìm tài liệu về FileStream để ngâm cứu nhé.

À trong Access 2010 trở lên thì "Image" control có thêm thuộc tính "PictureData" có thể đọc trực tiếp dữ liệu dạng Binary rất tiện lợi.
Vd: Me.imgHinhNV.PictureData = adoRS.Fields("ImageData").Value
- [ImageData] là field lưu hình ảnh dưới dạng varbinary (max) trong table của SQL Server.
Vâng em cảm ơn anh nhiều ạ.
 
Upvote 0
Web KT
Back
Top Bottom