2008-09-03 39 views
6

Tôi thường lưu chuỗi kết nối của mình trong web.config hoặc trong cài đặt ứng dụng của dự án Visual Studio của tôi. Ứng dụng tôi hiện đang làm việc trên thực hiện rất nhiều chuyến đi đến cơ sở dữ liệu có nghĩa là nó sẽ tra cứu chuỗi kết nối mỗi lần. Tôi có nên đặt chuỗi kết nối trong bộ nhớ cache hoặc tôi nên xem xét lưu trữ toàn bộ đối tượng SqlConnection trong bộ nhớ cache để loại bỏ nhu cầu mở và đóng chúng mọi lúc không?Bạn lưu trữ chuỗi kết nối cơ sở dữ liệu ở đâu?

Cập nhật: Có vẻ như sự đồng thuận là để lưu trữ các chuỗi kết nối trong một tập tin cấu hình và rời khỏi bộ nhớ đệm trong tay tin cậy của ADO.NET

Trả lời

4

tôi sẽ không cache đối tượng kết nối, mà sẽ đánh bại các built-in kết nối tổng hợp - ADO.NET sẽ xử lý các kết nối (giả sử bạn nhanh chóng và đóng chúng lại) một cách hiệu quả bằng cách riêng của mình . Khi có chuỗi kết nối, bạn không cần phải cache nó nếu bạn tải nó từ kết nối - đối tượng trình quản lý kết nối trong khung công tác .NET 2.0 nạp cấu hình vào bộ nhớ khi bạn truy cập nó lần đầu tiên, vì vậy bạn có thể sử dụng nó. không có chuyến đi lặp lại vào hệ thống tệp.

0

Giữ nó trong một tập tin cấu hình. Sử dụng chiến lược truy cập dữ liệu mạnh mẽ được cung cấp bởi các công cụ như NHibernate hoặc LINQ to Sql.

0

Từ những gì tôi có thể nhớ lại nội dung của file .config được tổ chức trong bộ nhớ dù sao ... tôi sẽ lấy lại cho bạn.

Chỉnh sửa: Điều gì HE nói

1

Tôi thường lưu trữ chuỗi kết nối trong đối tượng cấu hình chung trong ứng dụng của mình. Giá trị này được nạp vào đầu chương trình thực thi từ nơi nó được lưu trữ - tệp, tệp được mã hóa, tệp cấu hình, vv ADO.NET rất tốt trong việc lưu vào bộ nhớ cache đối tượng kết nối với cơ sở dữ liệu, vì vậy tôi sẽ không cache đối tượng SqlConnection .

3

Web.config được lưu trong bộ nhớ cache. Nhưng ngay cả khi nó không được, đừng quên rằng ado.net duy trì một hồ bơi kết nối - nó không mở một kết nối mới mỗi khi bạn thực hiện cuộc gọi đến db.

0

Giải pháp có thể: Lưu chuỗi kết nối được mã hóa ban đầu (trong Web.Config hoặc App.Config) cho thông tin đăng nhập được phép chỉ chạy một quy trình được lưu trữ để xác thực. Hơn chuyển đổi đăng nhập động từ các giá trị được mã hóa được lưu trữ trong một bảng cấu hình trong db.

Các vấn đề liên quan