394
Chương 10: Cơ sở dữ liệu
Console.WriteLine(" Connection State = " + con.State);
}
// Cuối khối using, Dispose sẽ gọi Close.
}
Đoạn mã dưới đây trình bày một chuỗi kết nối dùng để mở một kết nối đến cơ sở dữ liệu ở
trên (nếu bạn đang sử dụng OLE DB Data Provider để thực hiện kết nối):
// Tạo một đối tượng OleDbConnection rỗng.
using (OleDbConnection con = new OleDbConnection()) {
// Cấu hình chuỗi kết nối của đối tượng OleDbConnection.
con.ConnectionString =
"Provider = SQLOLEDB;" + // OLE DB Provider for SQL Server
"Data Source = localhost;" + // Đối tượng SQL Server cục bộ
"Initial Catalog = Northwind;" + // Cơ sở dữ liệu mẫu Northwind
"Integrated Security=SSPI"; // Integrated Windows Security
// Mở kết nối cơ sở dữ liệu.
con.Open();
§
}
2.
2.
S d ng connection-pooling
ử ụ
S d ng connection-pooling
ử ụ
Bạn muốn duy trì một pool chứa các kết nối đang mở để cải thiện hiệu năng và
tính quy mô cho một hệ thống lớn.
Cấu hình pool bằng cách sử dụng các thiết lập trong chuỗi kết nối của đối tượng
kết nối.
Connection-pooling làm giảm đáng kể tổng phí liên hợp với việc tạo và hủy kết nối cơ sở dữ
liệu. Connection-pooling cũng cải thiện tính quy mô của các giải pháp bằng cách giảm số
lượng kết nối đồng thời mà một cơ sở dữ liệu phải duy trì—đa số thường “ngồi không” suốt
một phần đáng kể thuộc thời gian sống của chúng. Với connection-pooling, thay vì tạo và mở
một đối tượng kết nối mới mỗi khi cần, bạn có thể lấy kết nối đã mở từ pool. Khi bạn đã hoàn
tất việc sử dụng kết nối, thay vì đóng nó, bạn trả nó về cho pool và cho phép đoạn mã khác sử
dụng nó.
Theo mặc định, SQL Server và Oracle Data Provider cung cấp chức năng connection-pooling.
Một pool sẽ hiện diện đối với mỗi chuỗi kết nối do bạn chỉ định khi mở một kết nối mới. Mỗi
khi bạn mở một kết nối mới với chuỗi kết nối đã được sử dụng qua, nó sẽ được lấy từ pool