이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 63300|회답: 7

[.NET 코어] ADO.NET ObjectPool을 통해 SqlConnection 연결 풀을 생성합니다

[링크 복사]
2020-4-19 18:51:31에 게시됨 | | | |
ObjectPool은 마이크로소프트의 새로운 기능으로, 마이크로소프트는 재사용 가능한 일부 객체를 유지보수하는 데 도움을 줍니다.

간단히 말해, 공유 자전거와 비슷하게, 사용 시 코드를 스캔해 잠금 해제하면 차량이 이미 사람이 있다는 뜻이고, 차량을 사용하면 잠그면 차량이 탑승 상태에서 해제됩니다. 이 점령과 출시 모두 플랫폼에서 우리를 위해 관리하고 있습니다.

일부 객체는 스레드 안전하지 않지만, 객체를 인스턴스화할 때마다 일부 자원을 소모해야 합니다.

.NET 코어의 객체 풀에 대한 상세 설명
https://www.itsvse.com/thread-9152-1-1.html
(출처: Architect_Programmer)
먼저, IPooledObjectPolicy 인터페이스를 계승하는 새로운 SqlConnectionPooledObjectPolicy 클래스를 만들고<T>, 그 두 메서드를 구현해야 합니다.

Create 메서드에서 객체를 인스턴스화하는 방법,return은 객체가 여전히 재사용할 수 있는지 여부를 나타내며, false가 반환되면 객체는 객체 풀에서 삭제됩니다.

테스트 소스 코드는 다음과 같습니다:

검사 결과는 다음과 같습니다:



처음 10개의 쿼리에서는 연결 풀이 약간 느리지만, 그 이후에는 SqlConnection 인스턴스화할 때보다 더 빠릅니다.

첨부된 소스 코드가 있습니다

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답






이전의:C# 프로그램은 시간 소모가 많은 테스트 클래스를 실행합니다
다음:MSSQL Trusted_Connection 구성
2020-4-19 21:58:46에 게시됨 |
이건 새로운 무언가입니다
2020-4-30 13:05:18에 게시됨 |
와서 보고, 응원하고, 소파
 집주인| 2021-3-22 15:31:43에 게시됨 |
DefaultObjectPoolProvider 소스 코드
최대 유지 기본 환경.ProcessorCount * 2;





 집주인| 2021-3-22 15:34:51에 게시됨 |
 집주인| 2021-3-23 09:50:57에 게시됨 |
테스트 코드:

maximumRetained는 5로 설정되어 있으며, 테스트 인스턴스화는 매번 반환될 때마다 한 번만 인스턴스화됩니다. 아래 그림에서 볼 수 있습니다:



반환하지 않는 경우, 테스트는 최대 5번을 초과하지만 10번 인스턴스화되고, 예외를 던지지 않습니다. 사용 완료 후에는 서서히 재순환되어 5번만 유지될 수 있습니다:


 집주인| 2021-3-24 18:23:44에 게시됨 |
SQL Server 연결 풀 (ADO.NET)

사용자가 연결에서 Open을 호출할 때마다, 풀 프로세스는 풀 내에서 이용 가능한 연결을 찾습니다. 풀 연결이 가능하면, 새 연결을 열지 않고 발신자에게 반환됩니다. 애플리케이션이 해당 연결에서 Close를 호출하면, 풀 프로세스는 연결을 닫지 않고 활성 연결 풀 세트로 연결을 반환합니다.

https://docs.microsoft.com/zh-cn ... -connection-pooling

2021-8-17 10:13:07에 게시됨 |
배우기 위해 배우세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com