DetailPage-MSS-KB

기술 자료

기술 자료: 325607 - 마지막 검토: 2005년 9월 27일 화요일 - 수정: 5.3

사용 가능한 핫픽스 다운로드
핫픽스 보기 및 다운로드 요청하기
 
 

이 페이지에서

요약

이 문서에서는 다음과 같은 변경 사항을 구현하는 것에 대한 SQL Server 2000의 기능 핫픽스를 설명합니다.
  • 핫픽스를 새 fn_get_sql 시스템 테이블 반환 함수를 만듭니다.
  • 핫픽스는 이러한 세 가지 새 열을 마스터 끝에 추가합니다.sysprocesses 시스템 테이블:
    • sql_handle(이진)
    • stmt_start(int)
    • stmt_end(int)

  • 핫픽스를 만들고 새 추적 플래그, 추적 플래그 2861.

해결 방법

이 문제를 해결하려면 Microsoft SQL Server 2000의 최신 서비스 팩을 구하십시오. 추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
290211  (http://support.microsoft.com/kb/290211/ ) 최신 SQL Server 2000 서비스 팩을 구하는 방법
참고 다음 핫픽스는 Microsoft SQL Server 2000 서비스 팩 3 릴리스 전에 만들어진 것입니다.

핫픽스 파일

fn_get_sql 함수를 구현하는 SQL Server 2000 핫픽스가 것입니다.

수정 프로그램을 구하려면 Microsoft 기술 지원 서비스에 문의하십시오. 이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
   Date         Time      Version    Size              File name
   -----------------------------------------------------------------

   07/01/2002   4:50 PM   8.00.652   7,285 kilobytes   Sqlservr.exe
				
참고 파일 종속성으로 인해 최신 핫픽스 또는 파일이 들어 있는 기능은 또한 추가 파일이 들어 있을 수 있습니다.

중요한 이 수정 프로그램의 기능을 원하는, Sqlservr.exe 빌드 8.00.652, 이후 크거나 적용해야 합니다 있는 Sp2_qfe_serv_uni.sql 실행해야 하는 경우 이 수정 프로그램이 포함된 파일입니다. 자세한 내용은 해당 Readme.txt 수정 파일에 포함 파일.

현재 상태

Microsoft 문제는 이 문서의 시작 부분에 나열한 제품에서 문제를 확인했습니다.이 문제는 Microsoft SQL Server 2000 서비스 팩 3에서 처음 수정되었습니다.

추가 정보

정 및 fn_get_sql 시스템 테이블 반환 함수에 대한 구문과 같습니다.

fn_get_sql

지정한 핸들에서 참조하는 SQL 텍스트를 반환합니다.

구문

fn_get_sql ([@ SqlHandle =] SqlHandle)

인수

[@ SqlHandle =] SqlHandle

이진 핸들 값입니다. SqlHandle binary(20) 기본값이 있는 것입니다.

반환된 테이블

표 축소표 확대
열 이름데이터 형식설명
dbidsmallint데이터베이스 ID 임시 SQL 문의 NULL입니다.
objectidint데이터베이스 개체의 ID 입니다. NULL 의 임시 SQL 문을.
번호smallint그룹화된 경우 그룹화 프로시저 번호입니다. 프로시저가 아닌 항목의 0. 임시 SQL 문의 NULL입니다.
암호화된비트개체가 암호화된 나타냅니다.
0 = 암호화되지 않음
1 = 암호화
텍스트텍스트SQL 텍스트입니다. 암호화된 개체가 NULL입니다.

설명

Fn_get_sql에 대해 지정된 SQLHANDLE SQL 텍스트를 반환하는 시스템 테이블 반환 함수입니다. 유효한 SQLHANDLE sysprocesses 시스템 테이블의 sql_handle 열을 얻을 수 있습니다.

캐시에서 더 이상 존재하지 핸들을 전달하면 fn_get_sql 빈 결과 집합이 반환됩니다. 잘못된 핸들을 전달하면 일괄 처리를 중단하고 다음과 같은 오류 메시지가 나타납니다.
서버: Msg 569, 수준 16, 상태 1, 프로시저 fn_get_sql fn_get_sql 수 있는 핸들이 전달된 선 12 잘못되었습니다.
SQL Server 대량 작업 문과 8 KB 보다 큰 문자열 리터럴 사용하면 문을 같은 일부 Transact-SQL 문을 캐시할 수 없습니다. 이러한 문의 핸들을 통해 fn_get_sql 함수를 검색할 수 없습니다.

텍스트 열의 암호를 포함할 수 있는 텍스트가 필터링됩니다. 모니터링되지 않은 보안 관련 저장된 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 추적 제한 항목을 검토하십시오.

사용 권한

sysadmin 고정된 서버 역할의 멤버만 fn_get_sql 함수를 실행할 수 있습니다.

예제

DBCC INPUTBUFFER 명령이 fn_get_sql 함수에 의해 반환되는 정보를 비슷합니다. 상황에서 DBCC INPUTBUFFER, 같은 제한된 fn_get_sql 함수를 사용하십시오.
  • 255자의 이벤트를 경우.
  • 저장 프로시저의 가장 높은 현재 중첩 수준을 반환하는 경우. 예를 들어, sp_1sp_2 라는 두 저장된 프로시저가 있습니다. 저장 프로시저, sp_2sp_2 실행하는 동안 sysprocesses 시스템 테이블에서 핸들을 가져올 프로시저 호출을 sp_1 저장된 경우 fn_get_sql 함수는 sp_2에 대한 정보를 반환합니다. 또한 fn_get_sql 함수는 가장 높은 현재 중첩 수준에 전체 저장된 프로시저를 반환합니다.
데이터베이스 관리자는 fn_get_sql 함수를 사용하여 프로세스 문제를 진단할 수 있습니다. 문제가 서버 프로세스 ID (SPID) 관리자가 식별하는 후에는 관리자가 해당 SQLHANDLE 해당 SPID가 및 다음 핸들을 fn_get_sql 함수를 호출할 검색하고 있습니다 시작 및 끝 오프셋이 문제의 SPID SQL 텍스트를 확인할 수 있습니다. 예를 들어,:
DECLARE @Handle binary(20)
SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = 52
SELECT * FROM ::fn_get_sql(@Handle) 
				
fn_get_sql 함수를 사용하면 서버가 지속적으로 모니터링할 수도 있습니다. 예를 들어, 있는 SQLHANDLE 문 시작 및 끝 주기적으로 검색합니다 클라이언트 도구를 sysprocesses 시스템 테이블에서 오프셋합니다. 이 도구는 SQL 텍스트 고유 키 및 값 fn_get_sql 함수로 결과를 SQL 핸들 사용하여 캐시를 유지 관리합니다. sysprocesses 시스템 테이블 행 집합의 각 행에 대해 해당에 대한 SQLHANDLE 따라 캐시 텍스트 도구를 찾습니다. 텍스트 도구의 캐시에 없을 경우 도구는 다음 텍스트를 캐시에 저장할 수 fn_get_sql 함수를 호출합니다.

추적 플래그 2861

추적 플래그 2861 SQL Server 일반적으로 (간단한 임의(ad-hoc) 쿼리를, 집합, 트랜잭션 커밋 문과 다른 사람이 같은) 캐시 것입니다 않은 캐시 0인 비용 계획을 유지하기 위해 SQL Server 지시합니다.
  • 추적 플래그 2861 설정되어 있는 경우 fn_get_sql 함수는 SQL 텍스트 0인 비용 계획을 작업에 대해 반환할 수 있습니다. 추적 플래그 2861 해제된 경우 fn_get_sql 함수는 0인 비용 계획 작업과 SQL 텍스트를 반환할 수 없습니다.
  • 이 수정 프로그램을 적용할 때 추적 플래그 2861 기본적으로 해제되어 있습니다.

설명

추적 플래그 2861 설정되어 있는 경우 프로시저 캐시의 개체 수를 늘립니다. 추가 개체를 너무 작기 때문에 작은 증가는 프로시저 캐시를 차지하는 메모리 볼 수 있습니다.

SQL Server 2000에 대해 지정한 SQL 문을 기존 실행 계획을 찾기 위한 효율적인 알고리즘을 제공합니다. 그러나 인해 증가된 숫자를 프로시저 캐시에 저장된 개체의 검색하려면 관계형 엔진은 기존 계획 위한 걸리는 시간이 저하시킬 수 및 시스템 성능에 나쁜 영향을 미칠 수 있습니다 있습니다.

일반적으로 데이터베이스 크기의 메모리 크기보다 훨씬 큰 위치 시스템에서 시스템 일부 예상되는 메모리 압력 아래에 있습니다. 다른 개체에 필요한 메모리가 되도록 메모리 압력 경우 지연 기록기 프로세스는 프로시저 캐시의 개체 할당 됩니다. 이 프로시저 캐시의 크기를 바인딩하고 이 변경의 잠재적인 부정적인 영향을 최소화할 수 있습니다.

그러나 메모리 크기는 데이터베이스 크기보다 큰 위치 시스템에서 시스템 일반적으로 에서 메모리 압력 않습니다. 따라서 개체는 메모리 요구 때문에 프로시저 캐시에서 취소되기 및 위치를 그 성능이 저하될 것입니다 지점을 프로시저 캐시 크기가 커질 수 있습니다.

시스템 성능에 부정적인 영향을 참고 경우 다음과 같이 하십시오.
  1. 추적 플래그를 2861 해제하십시오.
  2. 쿼리 분석기에서 DBCC FREEPROCCACHE 명령을 실행하십시오. SQL Server를 다시 시작할 필요가 없습니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Standard Edition
키워드: 
kbmt kbhotfixserver kbqfe kbsqlserv2000sp3fix kbfix kbinfo kbsqlserv2000presp3fix KB325607 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store