SQL Server Profiler에서 "exec sp_reset_connection"은 무엇을 의미합니까?
sp_reset_connection을 내보냄으로써 SQL Profiler의 의미를 이해하려고 합니다.
"exec sp_reset_connection" 행 뒤에 Batch Starting 및 Completed 행이 있습니다.
RPC:Completed exec sp_reset_connection
SQL:BatchStarting SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
SQL:BatchCompleted SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
기본적으로 첫 번째 행 "exec sp_reset_connection"은 전체 프로세스(접속을 열고 선택한 stmt를 실행한 다음 연결을 닫고 다시 풀로 해제)가 진행됨을 의미합니까?아니면 제 연결은 아직 오픈스테이지입니다.
그리고 sp_reset_connection이 select 스테이트먼트보다 먼저 실행되는 이유는 무엇입니까?리셋은 사용자의 sql 뒤에 와야 하지 않을까요?
연결이 언제 열리고 언제 닫히는지 좀 더 자세히 알 수 있는 방법이 있나요?
"exec sp_reset_connection"이 표시되면 연결이 닫혔다는 의미입니까?
로 '하다'는 것입니다.sp_reset_connection
는 연결 풀이 재사용되고 있음을 나타냅니다.한 가지 특정한 결과를 알고 있어야 합니다!
Jimmy Mays의 MSDN 블로그는 다음과 같습니다.
sp_reset_connection은 트랜잭션 분리 수준을 이전 연결 설정에서 서버 기본값으로 재설정하지 않습니다.
업데이트: SQL 2014부터는 TDS 버전 7.3 이후 클라이언트 드라이버의 트랜잭션 분리 레벨이 기본값으로 리셋됩니다.
참조: SQL Server: 풀링된 연결 간의 격리 수준 누출
다음은 추가 정보입니다.
sp_reset_connection의 역할은 무엇입니까?
데이터는 ODBC, OLE-DB 및 시스템과 같은 API의 계층에 액세스합니다.Data.SqlClient는 모두 연결 풀에서 연결을 다시 사용할 때 (내부) 저장 프로시저 sp_reset_connection을 호출합니다.이렇게 하면 다시 사용하기 전에 연결 상태가 리셋되지만 리셋되는 내용은 문서화되어 있지 않습니다.이 문서에서는 리셋되는 접속 부분을 문서화합니다.
sp_communications_connection은 연결의 다음 측면을 리셋합니다.
모든 오류 상태 및 숫자(@@error 등)
병렬 쿼리를 실행하는 상위 EC의 하위 스레드인 모든 EC(실행 컨텍스트)를 중지합니다.
미결 I/O 작업을 대기합니다.
접속에 의해 서버상의 보류 버퍼를 해방합니다.
연결에 사용되는 버퍼 리소스의 잠금을 해제합니다.
접속에 의해 소유된 모든 할당 메모리를 해방합니다.
연결에 의해 작성된 모든 작업 또는 임시 테이블을 지웁니다.
연결에 의해 소유되는 모든 전역 커서를 중지합니다.
열려 있는 모든 SQL-XML 핸들을 닫습니다.
열려 있는 SQL-XML 관련 작업 테이블을 삭제합니다.
모든 시스템 테이블을 닫습니다.
모든 사용자 테이블을 닫습니다.
모든 임시 개체를 삭제합니다.
미해결 트랜잭션 중단
등록 시 분산 트랜잭션의 결함
공유 데이터베이스 잠금을 해제하는 현재 데이터베이스 사용자의 참조 수를 줄입니다.
획득한 잠금을 해제합니다.
획득한 핸들을 해제합니다.
모든 SET 옵션을 기본값으로 재설정합니다.
@@rowcount 값을 리셋합니다.
@@identity 값을 리셋합니다.
dbcc traceon()을 사용하여 세션레벨 트레이스 옵션을 리셋합니다.
를 리셋합니다.보에 대한
NULL
SQL Server 2005 이상에서sp_reset_connection이 리셋되지 않음:
주의: 일시적인 웹에서 손실되는 것을 원치 않기 때문에 여기에 목록을 포함합니다.
접속 풀링이 사용되고 있는 것을 나타냅니다(이것은 좋은 일입니다).
단, 주의:
저장 프로시저 또는 트리거에서 SET TRANSACTION INALION LEVEL을 발행하면 개체가 반환될 때 분리 수준이 개체가 호출되었을 때의 실제 수준으로 재설정됩니다.예를 들어, 배치에서 REPETABLE READ를 설정한 후 배치가 분리 레벨을 SERIALBLE로 설정하는 저장 프로시저를 호출하면 저장 프로시저가 배치에 제어를 반환할 때 분리 레벨 설정이 REPETABLE READ로 돌아갑니다.
http://msdn.microsoft.com/en-us/library/ms173763.aspx
언급URL : https://stackoverflow.com/questions/641120/what-does-exec-sp-reset-connection-mean-in-sql-server-profiler
'programing' 카테고리의 다른 글
커서를 사용하지 않는 각 행의 SQL Call Stored Proced Procedure (0) | 2023.04.07 |
---|---|
Insert Update 트리거 삽입 또는 업데이트 여부를 확인하는 방법 (0) | 2023.04.07 |
Microsoft SQL Server 로그인 오류: 18456 (0) | 2023.04.07 |
백업을 복원할 때 모든 활성 연결을 끊으려면 어떻게 해야 합니까? (0) | 2023.04.07 |
다음을 포함하는 저장 프로시저를 찾으려면 어떻게 해야 합니까? (0) | 2023.04.07 |