Nhóm kết nối mysql lõi mạng

Kết nối với cơ sở dữ liệu là thao tác chậm nhất được thực hiện bởi ứng dụng tập trung vào dữ liệu. Tài liệu này mô tả cách sử dụng lại các kết nối gộp, thay vì tạo các kết nối mới, có thể cải thiện. hiệu suất ứng dụng NET

Bạn có thể kiểm soát hành vi tổng hợp kết nối bằng cách sử dụng các tùy chọn chuỗi kết nối được đặt cho ADO của bạn. nhà cung cấp dữ liệu NET. Ví dụ: các tùy chọn chuỗi kết nối có thể xác định các cài đặt sau cho DataDirect Connect® cho ADO. nhà cung cấp dữ liệu NET

  • Số lượng nhóm kết nối (Số lượng nhóm tối đa)
  • Kích thước vùng kết nối tối đa (Max Pool Size)
  • Số lượng kết nối tối thiểu trong nhóm kết nối (Kích thước nhóm tối thiểu)
  • Số giây để giữ kết nối trong nhóm kết nối (Thời gian tồn tại của kết nối)
  • Có bật xác thực Tích hợp Windows cho nhà cung cấp dữ liệu SQL Server (Bảo mật tích hợp) hay không

Tài liệu này cũng mô tả các ưu điểm về hiệu suất của kỹ thuật xử lý các kết nối chết trong nhóm kết nối của DataDirect, cũng như các mẹo về mở và đóng kết nối. Ngoài ra, các ví dụ mã C# minh họa cách tạo nhóm kết nối và cách xử lý các giao dịch phân tán khi sử dụng nhóm kết nối

GHI CHÚ. Các ví dụ mã trong tài liệu này sử dụng ADO. MẠNG 2. 0 Các khả năng của Mô hình lập trình chung và Siêu dữ liệu được giới thiệu trong Microsoft. MẠNG 2. 0 khung. Nếu bạn đang sử dụng. NET Framework 1. x hoặc Kết nối DataDirect cho. MẠNG 2. 2 nhà cung cấp dữ liệu, hãy tham khảo Kết nối tổng hợp trong. ứng dụng NET


Kết nối với cơ sở dữ liệu là thao tác chậm nhất được thực hiện bởi ứng dụng tập trung vào dữ liệu. Tài liệu này mô tả cách sử dụng lại các kết nối gộp, thay vì tạo các kết nối mới, có thể cải thiện. hiệu suất ứng dụng NET

Bạn có thể kiểm soát hành vi tổng hợp kết nối bằng cách sử dụng các tùy chọn chuỗi kết nối được đặt cho ADO của bạn. nhà cung cấp dữ liệu NET. Ví dụ: các tùy chọn chuỗi kết nối có thể xác định các cài đặt sau cho DataDirect Connect® dành cho ADO. nhà cung cấp dữ liệu NET

  • Số lượng nhóm kết nối (Số lượng nhóm tối đa)
  • Kích thước vùng kết nối tối đa (Max Pool Size)
  • Số lượng kết nối tối thiểu trong nhóm kết nối (Kích thước nhóm tối thiểu)
  • Số giây để giữ kết nối trong nhóm kết nối (Thời gian tồn tại của kết nối)
  • Có bật xác thực Tích hợp Windows cho nhà cung cấp dữ liệu SQL Server (Bảo mật tích hợp) hay không

Tài liệu này cũng mô tả các ưu điểm về hiệu suất của kỹ thuật xử lý các kết nối chết trong nhóm kết nối của DataDirect, cũng như các mẹo về mở và đóng kết nối. Ngoài ra, các ví dụ mã C# minh họa cách tạo nhóm kết nối và cách xử lý các giao dịch phân tán khi sử dụng nhóm kết nối


Quản lý nhóm kết nối

Kết nối với cơ sở dữ liệu là hoạt động chậm nhất bên trong ứng dụng tập trung vào dữ liệu. Với tổng hợp kết nối, bạn cung cấp môi trường tối ưu cho các ứng dụng dựa trên cơ sở dữ liệu. Tổng hợp kết nối cho phép bạn tái sử dụng các kết nối thay vì tạo một kết nối mới mỗi khi ADO. NET cần thiết lập kết nối với cơ sở dữ liệu bên dưới

Hành vi tổng hợp kết nối có thể được kiểm soát bằng cách sử dụng các tùy chọn chuỗi kết nối (xem tài liệu dành cho nhà cung cấp dữ liệu của bạn). Ví dụ, đối với hầu hết ADO. NET, các tùy chọn chuỗi kết nối có thể xác định số lượng nhóm kết nối, số lượng kết nối trong một nhóm và thời gian tồn tại của các kết nối gộp được sử dụng bởi mỗi quy trình

Tổng hợp kết nối trong ADO. NET không được cung cấp bởi các thành phần cốt lõi của Microsoft. Nền tảng NET. Nó phải được thực hiện trong ADO. NET chính nhà cung cấp dữ liệu. Tất cả DataDirect ADO. NET cung cấp chức năng tổng hợp kết nối giống nhau. Bằng cách lập kế hoạch chu đáo cho việc quản lý kết nối trước khi triển khai, bạn có thể cải thiện hiệu suất và khả năng bảo trì của ứng dụng

Tạo tổng hợp kết nối

Mỗi nhóm kết nối được liên kết với một chuỗi kết nối cụ thể. Theo mặc định, nhóm kết nối được tạo khi kết nối đầu tiên có chuỗi kết nối duy nhất kết nối với cơ sở dữ liệu. Nhóm được phổ biến với các kết nối lên đến kích thước nhóm tối thiểu. Có thể thêm các kết nối bổ sung cho đến khi nhóm đạt đến kích thước nhóm tối đa

Nhóm vẫn hoạt động miễn là mọi kết nối vẫn mở, trong nhóm hoặc được sử dụng bởi ứng dụng có tham chiếu đến đối tượng Kết nối có kết nối mở

Nếu một kết nối mới được mở và chuỗi kết nối không khớp chính xác với một nhóm hiện có, một nhóm mới phải được tạo. Bằng cách sử dụng cùng một chuỗi kết nối, bạn có thể nâng cao hiệu suất và khả năng mở rộng của ứng dụng của mình

Trong đoạn mã C# sau đây, ba đối tượng DbConnection mới được tạo nhưng chỉ cần có hai nhóm kết nối để quản lý chúng. Lưu ý rằng các chuỗi kết nối cho conn1 và conn2 khác nhau bởi các giá trị được chỉ định cho các tùy chọn chuỗi kết nối ID người dùng, Mật khẩu và Kích thước nhóm tối thiểu

DbProviderFactory Factory =

DbProviderFactories.GetFactory("DDTek.Oracle");

DbConnection Conn1 = Factory.CreateConnection();

"Host=Accounting;Port=1521;User ID=scott;Password=tiger; " +

"Service Name=ORCL;Min Pool Size=50";

// Pool A is created and filled with connections to the

DbProviderFactories.GetFactory(0

DbProviderFactories.GetFactory(1 +

DbProviderFactories.GetFactory(3_______8_______

DbProviderFactories.GetFactory(5

DbProviderFactories.GetFactory(6

"Host=Accounting;Port=1521;User ID=scott;Password=tiger; " +

"Service Name=ORCL;Min Pool Size=50";

"DDTek.Oracle"1

"DDTek.Oracle"2

Sau khi được tạo, nhóm kết nối sẽ không bị hủy cho đến khi quá trình hoạt động kết thúc hoặc vượt quá thời gian tồn tại của kết nối. Bảo trì các nhóm không hoạt động hoặc trống liên quan đến chi phí hệ thống tối thiểu

DataDirect ADO. NET cho Microsoft SQL Server hỗ trợ xác thực Windows tích hợp (NTLM). Nếu chuỗi kết nối được sử dụng bởi một đối tượng DbConnection đặt cả hai tùy chọn Kết nối tổng hợp và Bảo mật tích hợp thành đúng, thì thông tin Tên miền và ID người dùng sẽ được bao gồm trong thông tin đủ điều kiện kết nối tổng hợp. Trong trường hợp này, một chuỗi kết nối duy nhất không phải là yêu cầu duy nhất để tạo một nhóm - thay vào đó, một nhóm được tạo cho mỗi chuỗi kết nối được chuyển bởi một người dùng cụ thể. Điều này ngăn chặn việc mạo danh một người dùng SQL Server thông qua nhóm kết nối

Bởi vì nhóm kết nối mới được tạo cho mỗi người dùng kết nối, hãy xem xét cẩn thận các giá trị mà bạn chỉ định cho các tùy chọn chuỗi kết nối Kích thước nhóm tối thiểu và Thời gian chờ cân bằng tải. Ví dụ: giả sử bạn đã xác định tối thiểu 100 kết nối trong mỗi nhóm với thời gian tồn tại của kết nối là 60 giây cho mỗi kết nối. Nếu bạn có 200 người dùng cá nhân kết nối, tài nguyên hệ thống sẽ bị ràng buộc

Thêm nhóm kết nối

Nhóm kết nối được tạo trong quá trình tạo từng chuỗi kết nối duy nhất mà ứng dụng sử dụng. Khi một nhóm được tạo, nó sẽ được phổ biến với đủ kết nối để đáp ứng yêu cầu về kích thước nhóm tối thiểu, được đặt bởi tùy chọn chuỗi kết nối Kích thước nhóm tối thiểu. Nếu một ứng dụng đang sử dụng nhiều kết nối hơn Kích thước nhóm tối thiểu, nhà cung cấp dữ liệu sẽ phân bổ các kết nối bổ sung cho nhóm lên đến giá trị của tùy chọn chuỗi kết nối Kích thước nhóm tối đa, đặt số lượng kết nối tối đa trong nhóm

Khi một đối tượng DbConnection được yêu cầu bởi ứng dụng gọi DbConnection. Open(), kết nối được lấy từ nhóm, nếu có sẵn kết nối có thể sử dụng được. Một kết nối có thể sử dụng được định nghĩa là một kết nối hiện không được sử dụng bởi một đối tượng DbConnection hợp lệ khác có ngữ cảnh giao dịch phân tán phù hợp (nếu có)

Nếu đã đạt đến kích thước nhóm tối đa và không có kết nối có thể sử dụng được, thì yêu cầu sẽ được xếp hàng đợi trong nhà cung cấp dữ liệu. Nhà cung cấp dữ liệu đợi giá trị của tùy chọn chuỗi kết nối Thời gian chờ kết nối để kết nối có thể sử dụng trở lại ứng dụng. Nếu khoảng thời gian này hết hạn và không có kết nối nào khả dụng, nhà cung cấp dữ liệu sẽ trả về lỗi cho ứng dụng

QUAN TRỌNG. Đóng kết nối bằng phương thức Close() của đối tượng DbConnection thêm hoặc trả về kết nối cho nhóm

Xóa kết nối khỏi nhóm

Một kết nối bị xóa khỏi nhóm kết nối và kết nối đến máy chủ cơ sở dữ liệu bị chấm dứt khi nó không hoạt động (không được sử dụng) quá lâu hoặc khi một kết nối mới có chuỗi kết nối phù hợp được khởi tạo bởi ứng dụng (DbConnection. Open() được gọi). Khoảng thời gian mà một kết nối có thể không hoạt động trong nhóm kết nối trước khi bị xóa được xác định bởi tùy chọn chuỗi kết nối Thời gian chờ cân bằng tải

Trước khi trả lại một kết nối từ nhóm kết nối đến một ứng dụng, Trình quản lý nhóm sẽ kiểm tra xem kết nối đã bị đóng tại máy chủ chưa. Nếu kết nối không còn hợp lệ, Trình quản lý nhóm sẽ loại bỏ nó và trả về một kết nối khác từ nhóm, nếu có sẵn và hợp lệ

Các phương thức Clear Pool và Clear All Pools của đối tượng Connection, được giới thiệu trong. NET Framework 2. 0, xóa nhóm kết nối. ClearPool xóa nhóm kết nối được liên kết với một kết nối cụ thể. Ngược lại, ClearAllPools xóa tất cả nhóm kết nối được nhà cung cấp dữ liệu sử dụng. Các kết nối đang được sử dụng khi phương thức được gọi sẽ bị loại bỏ khi chúng được đóng lại

Tuy nhiên, xin lưu ý rằng nhà cung cấp dữ liệu luôn giữ lại số lượng kết nối được chỉ định bởi tùy chọn Kích thước nhóm kết nối tối thiểu trong nhóm kết nối. Vì vậy, đặt tùy chọn kết nối Kích thước nhóm tối thiểu lớn hơn 0 có nghĩa là nhiều kết nối trong nhóm sẽ bỏ qua tùy chọn kết nối Hết thời gian chờ cân bằng tải một cách hiệu quả

Xử lý các kết nối chết trong một nhóm

Vì vậy, điều gì sẽ xảy ra khi một kết nối nhàn rỗi mất kết nối vật lý với cơ sở dữ liệu? . Khi ứng dụng cố gắng kết nối bằng đối tượng DbConnection hiện có từ một nhóm, ứng dụng có thể gặp lỗi do kết nối vật lý với cơ sở dữ liệu đã bị mất

DataDirect ADO. NET xử lý tình huống này một cách minh bạch cho người dùng. Ứng dụng không nhận được bất kỳ lỗi nào trên DbConnection. Open() vì nhà cung cấp dữ liệu chỉ trả về kết nối từ nhóm kết nối. Lần đầu tiên đối tượng DbConnection được sử dụng để thực thi câu lệnh SQL (ví dụ: thông qua một trong các phương thức thực thi DataReader hoặc DataAdapter. Fill), nhà cung cấp dữ liệu phát hiện ra rằng kết nối vật lý với máy chủ đã bị mất và cố gắng kết nối lại với máy chủ trước khi thực hiện câu lệnh SQL. Nếu nhà cung cấp dữ liệu có thể kết nối lại với máy chủ, thì kết quả thực thi SQL sẽ được trả lại cho ứng dụng; . Nhà cung cấp dữ liệu sử dụng các tùy chọn chuyển đổi dự phòng kết nối, nếu được bật, khi thử kết nối lại liền mạch này. Để biết thêm thông tin về cách DataDirect ADO. NET triển khai chuyển đổi dự phòng kết nối, hãy tham khảo "Hỗ trợ chuyển đổi dự phòng trong DataDirect Connect cho ADO. NET Nhà cung cấp dữ liệu. "

GHI CHÚ. Vì các nhà cung cấp dữ liệu có thể cố gắng kết nối lại với máy chủ cơ sở dữ liệu khi thực thi các câu lệnh SQL, lỗi kết nối có thể được trả về ứng dụng khi thực thi câu lệnh. Nếu nhà cung cấp dữ liệu không thể kết nối lại với máy chủ (ví dụ: máy chủ vẫn ngừng hoạt động), thì phương thức thực thi sẽ đưa ra một lỗi cho biết nỗ lực kết nối lại không thành công, cùng với thông tin cụ thể về lý do kết nối không thành công

Phương pháp xử lý các kết nối chết trong nhóm kết nối của DataDirect cho phép hiệu suất tối đa của cơ chế tổng hợp kết nối. Ngược lại, một số nhà cung cấp dữ liệu định kỳ ping máy chủ bằng câu lệnh SQL giả trong khi các kết nối không hoạt động. Những người khác ping máy chủ khi ứng dụng yêu cầu sử dụng kết nối từ nhóm kết nối. Cả hai cách tiếp cận này đều thêm vòng lặp vào máy chủ cơ sở dữ liệu và cuối cùng làm chậm hoạt động bình thường của ứng dụng

Xử lý các giao dịch phân tán

Pool Manager nhóm các kết nối theo yêu cầu đối với các giao dịch. Nếu chuỗi yêu cầu yêu cầu một bối cảnh giao dịch cụ thể, nó phải được khớp với một kết nối có cùng bối cảnh giao dịch, ví dụ: một kết nối đã được liệt kê trong các giao dịch phân tán

Vì các kết nối đã đóng được trả về nhóm kết nối thích hợp, bạn có thể đóng kết nối ngay cả khi giao dịch phân tán đang chờ xử lý. Điều này có nghĩa là bạn vẫn có thể cam kết hoặc khôi phục giao dịch được phân phối cho đến khi đóng kết nối tại máy chủ

Mẹo mở và đóng kết nối

Mở kết nối ngay trước khi cần thiết. Mở chúng sớm hơn mức cần thiết sẽ giảm số lượng kết nối có sẵn cho những người dùng khác và có thể làm tăng nhu cầu về tài nguyên

Để giữ tài nguyên luôn sẵn sàng, hãy đóng kết nối một cách rõ ràng ngay khi không còn cần thiết. Nếu bạn đợi trình thu gom rác hoàn toàn dọn sạch các kết nối nằm ngoài phạm vi, thì các kết nối đó sẽ không được trả lại nhóm kết nối ngay lập tức, buộc các tài nguyên không thực sự được sử dụng

Đóng các kết nối bên trong một khối cuối cùng. Mã trong khối cuối cùng luôn chạy, bất kể có ngoại lệ xảy ra hay không. Điều này đảm bảo đóng kết nối rõ ràng. Ví dụ

"DDTek.Oracle"3

Nếu bạn đang sử dụng tổng hợp kết nối, việc mở và đóng kết nối không phải là một thao tác tốn kém. Sử dụng phương thức Close() của đối tượng Kết nối của nhà cung cấp dữ liệu sẽ thêm hoặc trả về kết nối cho nhóm kết nối. Tuy nhiên, hãy nhớ rằng việc đóng kết nối sẽ tự động đóng tất cả các đối tượng DataReader được liên kết với kết nối

Theo dõi hiệu suất nhóm kết nối

Tất cả DataDirect Connect cho ADO. NET cài đặt một bộ bộ đếm Giám sát hiệu suất (PerfMon) trả về thông tin cho phép bạn điều chỉnh hiệu suất của ứng dụng

Bảng sau đây mô tả các bộ đếm PerfMon mà bạn có thể sử dụng để điều chỉnh tổng hợp cho ứng dụng của mình

Bộ đếm PerfMon

Mô tả bộ đếm

Số nhóm kết nối hiện tại

Trả về số lượng nhóm hiện tại được liên kết với quy trình

Số kết nối gộp hiện tại

Trả về số lượng kết nối hiện tại trong tất cả các nhóm được liên kết với quy trình

Số kết nối gộp và không gộp hiện tại

Trả về số lượng kết nối gộp và không gộp hiện tại

Số kết nối gộp cao nhất

Trả về số lượng kết nối cao nhất trong tất cả nhóm kết nối kể từ khi quá trình bắt đầu

Tổng số kết nối thất bại

Trả về tổng số lần thử mở kết nối không thành công vì bất kỳ lý do nào kể từ khi quá trình bắt đầu

Tham khảo Microsoft. NET Framework để biết thông tin về cách sử dụng bộ đếm PerfMon

Kết luận - Tổng hợp kết nối

Quản lý kết nối chu đáo có thể cải thiện hiệu suất của. ứng dụng NET. Kết nối tổng hợp, được thực hiện trong ADO. NET, cho phép bạn giảm số lượng vòng lặp tới máy chủ, đồng thời phân bổ các kết nối và tài nguyên hệ thống hiệu quả hơn. Việc xác định một cách thận trọng số lượng nhóm kết nối, kích thước nhóm tối đa và tối thiểu cũng như khoảng thời gian kết nối duy trì trong nhóm kết nối có thể giúp ích cho bạn. NET chạy hiệu quả hơn

Sau khi xác định các tùy chọn chuỗi kết nối, bạn có thể điều chỉnh hiệu suất của ứng dụng bằng bộ đếm PerfMon. Các bộ đếm PerfMon này có thể trả về số nhóm kết nối hiện tại, số lượng kết nối được gộp và không được gộp, cũng như số lần thử kết nối không thành công kể từ khi quá trình bắt đầu

Công nghệ DataDirect cung cấp ADO sau. NET được xây dựng bằng mã được quản lý 100% hỗ trợ. NET Framework phiên bản 2. 0

  • DataDirect Connect cho ADO. MẠNG 3. 0 nhà cung cấp dữ liệu DB2
  • DataDirect Connect cho ADO. MẠNG 3. 0 Nhà cung cấp dữ liệu Oracle
  • DataDirect Connect cho ADO. MẠNG 3. 0 Nhà cung cấp dữ liệu SQL Server
  • DataDirect Connect cho ADO. MẠNG 3. 0 Nhà cung cấp dữ liệu Sybase

Mã hiện có được viết cho các phiên bản trước đó của. NET Framework và các phiên bản trước của DataDirect Connect cho. NET tương thích với 3. 0 phiên bản của nhà cung cấp dữ liệu. Lưu ý rằng các ứng dụng phải được biên dịch lại bằng cách sử dụng. NET Framework 2. 0

Tuy nhiên, nếu các ứng dụng của bạn yêu cầu Windows 98 và Windows Me và/hoặc. NET Framework 1. x, bạn có thể sử dụng DataDirect Connect để. MẠNG 2. 2 nhà cung cấp dữ liệu mà DataDirect sẽ tiếp tục cung cấp

Cách kết nối với cơ sở dữ liệu MySQL trong. NET lõi?

Cách kết nối với MySQL từ. .
Cài đặt MySqlConnector. Đầu tiên, cài đặt gói MySqlConnector NuGet. .
Chuỗi kết nối. Một chuỗi kết nối điển hình cho MySQL là. Máy chủ=YOURSERVER;User ID=YOURUSERID;Mật khẩu=YOURPASSWORD;Cơ sở dữ liệu=YOURDATABASE. .
Cấu hình dịch vụ (ASP. NET Core).
Mở và sử dụng kết nối

MySQL có hỗ trợ tổng hợp kết nối không?

Có thể có nhiều nhóm kết nối . Điều này cho phép các ứng dụng hỗ trợ nhóm kết nối đến các máy chủ MySQL khác nhau, chẳng hạn. Đối với mỗi yêu cầu kết nối, nhóm cung cấp kết nối khả dụng tiếp theo.

Bạn có thể sử dụng MySQL với. NET lõi?

NET Core và MySQL đều là công nghệ mã nguồn mở và miễn phí. ASP mới. NET Core có thể chạy trên Linux và trong Bộ chứa Linux và MySQL là một trong những cơ sở dữ liệu dễ dàng nhất để bắt đầu với . Điều này làm cho sự kết hợp của ASP. NET Core và MySQL một sự kết hợp khá hấp dẫn.

Kết nối nhóm MySQL là gì?

Nhóm chủ đề MySQL là một plugin máy chủ MySQL giúp mở rộng khả năng xử lý kết nối mặc định của máy chủ MySQL để giới hạn số lượng câu lệnh/truy vấn và giao dịch thực thi đồng thời để đảm bảo rằng mỗi người có đủ tài nguyên CPU và bộ nhớ để hoàn thành nhiệm vụ của mình