sách gpt4 ăn đã đi

Giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 40 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này giải thích chi tiết về pool kết nối cơ sở dữ liệu .NET, được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

Nói chung, 1 đến 2 cấu hình kết nối cơ sở dữ liệu sẽ được sử dụng trong các dự án của chúng tôi. Các cấu hình kết nối cơ sở dữ liệu của Tong Cheng Yilong được tập hợp thành một trung tâm cấu hình thống nhất, được DBA cấu hình và duy trì. .

Giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET

  。

DBA có thể chuyển đổi cơ sở dữ liệu dự phòng cho phía doanh nghiệp mà không xâm phạm vào phía doanh nghiệp. Sau đó, DBA yêu cầu xóa nhóm kết nối cũ ngay lập tức. Vì vậy, câu hỏi đặt ra là: Dotnet có thể xóa nhóm kết nối ngay lập tức không? Lưu ý là mình dùng clear chứ không phải nhả kết nối.

Nếu có những sinh viên không biết mục đích yêu cầu của DBA, hãy để tôi giải thích: Khi ứng dụng không còn sử dụng kết nối cũ nữa, về mặt lý thuyết, nhóm kết nối của bạn sẽ bị trống hoàn toàn, vì chỉ cần giải phóng kết nối sẽ chỉ tạo ra các kết nối trong nhóm kết nối Kết nối ở trạng thái Ngủ và vẫn duy trì kết nối vật lý trong một khoảng thời gian ngắn. Khoảng thời gian ngắn này thực sự không cần thiết và ảnh hưởng đến thông lượng của cơ sở dữ liệu kết nối cũ.

  。

Nền tảng kiến ​​thức tiên quyết

Trước khi trả lời câu hỏi này, trước tiên chúng ta nên nghiên cứu nhóm kết nối cơ sở dữ liệu .NET.

1. Bối cảnh của nhóm kết nối cơ sở dữ liệu .NET

Kết nối cơ sở dữ liệu là một hoạt động tốn thời gian và hầu hết các ứng dụng chỉ sử dụng từ 1 đến vài kết nối cơ sở dữ liệu. Để giảm thiểu chi phí mở kết nối, ado.net sử dụng công nghệ tối ưu hóa được gọi là kết nối tổng hợp.

2. Hiệu suất của nhóm kết nối cơ sở dữ liệu .NET

Việc gộp kết nối cơ sở dữ liệu giúp giảm số lần phải mở các kết nối mới và chương trình gộp sẽ duy trì các kết nối vật lý của cơ sở dữ liệu.

Các kết nối được quản lý bằng cách duy trì một tập hợp các đối tượng kết nối hoạt động cho từng cấu hình kết nối cụ thể.

Bất cứ khi nào ứng dụng cố gắng Mở một kết nối, chương trình nhóm sẽ tìm thấy một kết nối có sẵn trong nhóm và trả lại cho người gọi nếu có. Khi ứng dụng Đóng đối tượng kết nối, chương trình nhóm sẽ trả về đối tượng kết nối cho nhóm; (Ngủ). Kết nối này Có thể được sử dụng lại trong cuộc gọi Mở tiếp theo.

Nhìn lên bảng đen, đây là những điểm chính:

3. .NET hình thành nhóm kết nối cơ sở dữ liệu như thế nào?

Chỉ có thể gộp cùng một cấu hình kết nối và .NET duy trì các nhóm kết nối khác nhau cho các cấu hình khác nhau.

Hạn chế của cùng một cấu hình là: cùng một quy trình, cùng một chuỗi kết nối và cùng một chuỗi khóa của chuỗi kết nối. (Các từ khóa được cung cấp bởi cùng một kết nối theo các thứ tự khác nhau sẽ được chỉ định cho các nhóm khác nhau).

Số lượng kết nối khả dụng trong nhóm kết nối được xác định bởi kích thước nhóm tối đa của chuỗi kết nối.

Trong một ứng dụng, có đoạn mã sau:

using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=Northwind")) { connection.Open(); // Pool A được tạo. } using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=pubs")) { connection.Open(); // Pool B được tạo vì chuỗi kết nối khác nhau. } using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=Northwind")) { connection.Open(); // Chuỗi kết nối khớp với pool A. }

Ba đối tượng Kết nối đã được tạo ở trên, nhưng chỉ có hai nhóm kết nối cơ sở dữ liệu được hình thành.

Vẫn với đoạn mã trên, nếu có hai ứng dụng giống hệt nhau, về mặt lý thuyết sẽ hình thành bốn nhóm kết nối cơ sở dữ liệu.

4. Khi nào các kết nối trong nhóm kết nối bị xóa?

Khi một kết nối trong nhóm kết nối không hoạt động trong 4-8 phút, chương trình nhóm sẽ xóa kết nối.

Ứng dụng ngoại tuyến và nhóm kết nối sẽ bị xóa trực tiếp.

  。

Làm cách nào để xóa nhóm kết nối trong .NET?

Với nền tảng kiến ​​thức trên.

Hãy xem lại các yêu cầu của DBA. Khi chuyển đổi cấu hình kết nối ban đầu, hãy xóa nhóm kết nối.

Tôi tìm thấy từ tài liệu chính thức rằng .NET cung cấp các phương thức tĩnh ClearAllPools và ClearPool để xóa nhóm kết nối.

  • ClearAllPools: Xóa tất cả các nhóm kết nối liên quan đến DBProvider này
  • ClearPool(DBConnection conn) xóa nhóm kết nối được liên kết với đối tượng kết nối này

Rõ ràng, lần này chúng ta sẽ sử dụng phương thức ClearPool(DBConnection conn).

Nói chuyện mà không thực hành hoặc xác minh không phải là phong cách của tôi.

Tianhami Stress Test/queryapi tạo ra một nhóm kết nối chứa một số lượng lớn các đối tượng kết nối; khi thích hợp, /clearpoolapi sẽ xóa nhóm kết nối.

public class MySqlController : Controller { // GET: MySql [Route("query")] public string Index() { var s = "ID người dùng=teinfra_neo_netreplay;Mật khẩu=123456;DataBase=teinfra_neo_netreplay;Server=10.100.41.196;Port=3980;Kích thước nhóm tối thiểu=1;Kích thước nhóm tối đa=28;CharSet=utf8;"; using (var conn = new MySqlConnection(s)) { var comm = conn.CreateCommand(); comm.CommandText = "select count(*) from usertest;"; conn.Open(); var ret = comm.ExecuteScalar(); comm.CommandText = "select count(*) from information_schema.PROCESSLIST WHERE HOST like '10.22.12.245%';"; var len = comm.ExecuteScalar(); return $"查询结果:{ret} ,顺便查一下当前连接池的连接对象个数: {len}"; }; } [Route("clearpool")] public string Switch() { var s = "User ID=teinfra_neo_netreplay;Password=123456;DataBase=teinfra_neo_netreplay;Server=10.100.41.196;Port=3980;Min Pool Size=1;Max Pool Size=28;CharSet=utf8;"; sử dụng (var conn = new MySqlConnection(s)) { conn.Open(); MySqlConnection.ClearPool(conn); }; sử dụng (var conn = new MySqlConnection(s)) { conn.Open(); var comm = conn.CreateCommand(); comm.CommandText = "chọn số(*) từ information_schema.PROCESSLIST Ở ĐÂU CHỦ như '10.22.12.245%';"; var len = comm.ExecuteScalar(); return $"之前已经清空连接池, 此次查询连接池有 {v1} 个连接对象"; } } }

1. Dụng cụ kiểm tra áp suất sau

Giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET

2. so sánh cơ sở dữ liệu mysql

Giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET

Lệnh truy vấn số kết nối Mysql, (máy chủ là IP máy chủ web): chọn * từ information_schema.PROCESSLIST WHERE HOST như '10.22.12.245%',

3. Gọi /clearpoolapi để xóa nhóm kết nối

Giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET

bingo, lý thuyết xóa nhóm kết nối đã được xác minh.

Tường thuật thú vị

Đây là một hố sâu mà tôi đã leo vào gần đây ở Tong Cheng Yilong. Từ thực tiễn này, tôi đã hiểu phương pháp định nghĩa của nhóm kết nối cơ sở dữ liệu .NET, đồng thời nắm vững phương pháp truy vấn và định vị của DBProvider đối với số lượng kết nối .net.

Chuyển đổi mã tổ tiên, SDK thành phần thu thập dữ liệu .NET thực sự đã cải thiện thông lượng của cơ sở dữ liệu gốc.

Tôi hy vọng rằng những cân nhắc về thiết kế và ý tưởng lý thuyết + lập luận của bài viết này sẽ hữu ích cho độc giả một lần nữa vì đã quan tâm đọc và chú ý.

Phần này kết thúc bài viết về phần giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET. Để biết thêm thông tin về nhóm kết nối cơ sở dữ liệu .NET, vui lòng tìm kiếm các bài viết trước của tôi hoặc tiếp tục duyệt các bài viết liên quan bên dưới. Tôi hy vọng bạn sẽ ủng hộ tôi trong tương lai! .

Liên kết gốc: https://www.cnblogs.com/JulianHuang/p/15151213.html.

Cuối cùng, bài viết này về phần giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET kết thúc ở đây. Nếu bạn muốn biết thêm về phần giải thích chi tiết về nhóm kết nối cơ sở dữ liệu .NET, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. bạn sẽ ủng hộ tôi trong tương lai blog! .

40 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress