2011-10-16 24 views
40

Đây là chuỗi kết nối cơ sở dữ liệu của tôi. Tôi đã không đặt kích thước hồ bơi tối đa cho đến bây giờ.Tôi có nên đặt kích thước nhóm tối đa trong chuỗi kết nối cơ sở dữ liệu không? Điều gì xảy ra nếu tôi không?

public static string srConnectionString = 
         "server=localhost;database=mydb;uid=sa;pwd=mypw;"; 

Hiện tại, ứng dụng của tôi hỗ trợ bao nhiêu kết nối? Cú pháp chính xác để tăng kích thước nhóm kết nối là gì?

Ứng dụng được viết bằng C# 4.0.

+7

nếu bạn không gặp sự cố, hãy để nguyên mặc định. –

+0

hiện có nhưng tôi nghĩ rằng nó có thể gây ra vấn đề ở những thời điểm cao điểm. Vì vậy, tôi thích đặt cao hơn mặc định. như tôi đọc mặc định là 100 am i phải không? – MonsterMMORPG

+0

Kích thước hồ bơi kết nối mặc định là 100 được Microsoft ghi lại tại https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-connection-pooling và các địa điểm khác có thể. –

Trả lời

53

Hiện tại, ứng dụng của bạn hỗ trợ 100 kết nối trong hồ bơi. Đây là những gì chuỗi conn sẽ trông như thế nào nếu bạn muốn tăng nó để 200:

public static string srConnectionString = 
       "server=localhost;database=mydb;uid=sa;pwd=mypw;Max Pool Size=200;"; 

Bạn có thể điều tra có bao nhiêu kết nối với cơ sở dữ liệu sử dụng ứng dụng của bạn, bằng cách thực hiện sp_who thủ tục trong cơ sở dữ liệu của bạn. Trong hầu hết các trường hợp, kích thước nhóm kết nối mặc định sẽ là đủ.

+1

Có cách nào khác để cài đặt Max và Min poolize hơn thông qua chuỗi kết nối không? Tôi muốn làm điều đó trong mã số ... – Jos

+0

Điều gì sẽ xảy ra khi thiết lập 'kích thước hồ bơi tối đa' thành 30, khi tất cả các khe chứa đầy 'đang sử dụng' và 'kết nối nhàn rỗi', các kết nối không hoạt động sẽ là đóng tự động để nhường chỗ cho các kết nối mới? – Pierre

+2

@Pierre - bạn sẽ nhận được một lỗi tương tự như sau: System.InvalidOperationException: Hết thời gian chờ. Khoảng thời gian chờ đã trôi qua trước khi có kết nối từ hồ bơi. Điều này có thể xảy ra do tất cả các kết nối được gộp lại đã được sử dụng và đạt đến kích thước bể bơi tối đa. tại System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection (tùy chọn SqlConnectionString, Boolean & isInTransaction) tại System.Data.SqlClient.SqlConnection.Open() –

8

"hiện có nhưng tôi nghĩ nó có thể gây ra sự cố vào những lúc cao điểm" Tôi có thể xác nhận rằng tôi gặp sự cố khi tôi hết thời gian chờ vì yêu cầu cao điểm. Sau khi tôi đặt kích thước hồ bơi tối đa, ứng dụng chạy mà không gặp bất kỳ sự cố nào. IIS 7.5/ASP.Net

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