Windows NT 미만 SQL Server 성능 향상

기술 자료 번역 기술 자료 번역
기술 자료: 160606 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

이 페이지에서

요약

새 인터페이스 같은 성능 향상은 Windows NT에서 실행할 때 SQL Server 추가되었습니다. 이 향상 기능을 분산/수집 I/O 작업이 포함됩니다.

추가 정보

분산형/수집 무엇입니까?

분산/수집 고성능 I/O 경우에 사용되는 표준 방법입니다. 일반적으로 직접 메모리 액세스(DMA) 전송 참조합니다. 주어진된 데이터 블록을 메모리에 있는 같은 여러 가지 별개의 버퍼가 있을 수 있습니다. 분산/수집 없이 최대 메모리 디스크 전송 설정할 때 운영 체제에서 각 버퍼는 종종 전송 작업을 수행합니다 또는 블록 단일 큰 버퍼에 전송을 시작하기 전에 이동. 이러한 모두 비효율적입니다. 운영 체제/드라이버/하드웨어 메모리 별개의 위치에서 위로 데이터를 수집한 다음 단일 작업으로 "장소 에서" 전송할 경우 더 좋습니다. 마찬가지로, 디스크에서 입력을 위해 데이터 블록을 직접 분산되어 있으면 중간 블록 않고 메모리에 필요한 위치에 이동하고 등, 더 빠릅니다.

인터페이스 사양

ReadFileScatter

ReadFileScatter 함수를 OVERLAPPED 구조체에 파일 오프셋 지정된 위치에서 시작하여 파일에서 데이터를 읽고 데이터를 여러 사용자 버퍼가 배포합니다.
BOOL ReadFileScatter(
<WWBLOCKQUOTE>
    HANDLE hFile,                         // handle of file to read
    FILE_SEGMENT_ELEMENT aSegmentArray[], // array of buffer segments that
receives data
    DWORD nNumberOfBytesToRead,           // number of bytes to read
    LPDWORD lpReserved,                   // reserved must be NULL
    LPOVERLAPPED lpOverlapped             // address of structure for data
   );
				

매개 변수

hFile


파일을 읽기 위해서는 식별합니다. 파일 핸들은 GENERIC_READ 액세스할 수 있는 파일이 만들어져 있어야 합니다.

비동기 I/O 및 FILE_FLAG_NO_BUFFERING 캐시되지 않은 I/O 지정하려면 지정하려면 FILE_FLAG_OVERLAPPED 사용하여 파일을 열어야 합니다.

aSegmentArray

포인터 배열을 세그먼트를 가리킵니다. 전송된 데이터 일부가 배치할 메모리 버퍼에 세그먼트입니다. 세그먼트가 시스템 페이지 크기 및 페이지 크기를 경계에 정렬되어야 합니다.

메모리 세그먼트 VirtualAllocVlm를 사용하여 할당할 수 또는 표준 32비트 주소 메모리 있지만 모두 될 수 있습니다.

NNumberOfBytesToRead

파일에서 읽은 바이트 수를 지정합니다.

lpReserved

예약된 NULL이어야 합니다.

lpOverlapped

OVERLAPPED 구조체에 가리킵니다. 이 구조는 필요하며 유효한 OVERLAPPED 구조체에 가리켜야 합니다.

읽기 작업을 OVERLAPPED 구조체에 지정된 오프셋에서 시작하여 읽기 작업이 완료되기 전에 ReadFileScatter 반환할 수 있습니다. 이 경우 ReadFileScatter FALSE를 반환하고 ERROR_IO_PENDING GetLastError 함수를 반환합니다. 호출 프로세스가 읽기 작업이 완료되는 동안 계속 있습니다. 응용 프로그램이 어느 GetOverlappedResult/HasOverlappedIoCompleted I/O 완료 알림 또는 GetQueuedCompletionStatus 최대 I/O 완료 선택하도록 선택할 수 있습니다.

값 반환

함수가 성공적으로 실행된 경우 반환 값은 0이 아닙니다. 함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 얻으려면 GetLastError를 호출하십시오. ReadFileScatter 파일의 끝을 넘어 읽으려고 시도하면 함수는 0을 반환하고 GetLastError ERROR_HANDLE_EOF 반환합니다.

설명

각 FILE_SEGMENT_ELEMENT 긴 64비트입니다. 모든 64 비트 버퍼 포인터 계산하는 데 사용되는, 따라서 응용 프로그램을 명시적으로 64 비트 포인터를 지원하지 않는 시스템의 요소의 상위 32 비트로 합니다.

WriteFileGather

WriteFileGather 함수를 여러 버퍼에서 데이터를 수집한 다음 데이터를 파일에 씁니다. 이 함수는 비동기 작업에 대해 설계되었습니다. 이 함수는 OVERLAPPED 구조체에 의해 지정된 위치에 파일 데이터 쓰기 시작합니다.
BOOL WriteFileGather(
    HANDLE hFile,                // handle to file to write to
    FILE_SEGMENT_ELEMENT aSegmentArray [], // array of buffer segments
containing the data
    DWORD nNumberOfBytesToWrite,    // number of bytes to write
    LPDWORD lpReserved,             // Reserved must be NULL
    LPOVERLAPPED lpOverlapped       // pointer to structure needed for
overlapped I/O
   );
				

매개 변수

hFile


쓸 대상 파일을 나타냅니다. 파일 핸들은 GENERIC_WRITE 액세스할 수 있는 파일이 만들어져 있어야 합니다. 비동기 I/O 및 FILE_FLAG_NO_BUFFERING 캐시되지 않은 I/O 지정하려면 지정하려면 FILE_FLAG_OVERLAPPED 사용하여 파일을 열어야 합니다.

aSegmentArray

포인터 배열을 세그먼트를 가리킵니다. 전송된 데이터 일부가 배치할 메모리 버퍼에 세그먼트입니다. 세그먼트가 시스템 페이지 크기 및 페이지 크기를 경계에 정렬되어야 합니다. 메모리 세그먼트에 VirtualAllocVlm를 사용하여 할당할 수 또는 표준 32 비트 주소 메모리 있지만 모두 될 수 있습니다.

NNumberOfBytesToWrite

파일에 쓸 바이트 수를 지정합니다.

MS-DOS 운영 체제 달리 Windows NT null 쓰기 작업을 지정하는 것과 0으로 해석합니다. null 쓰기 작업이 모든 바이트를 쓰지 않습니다 않지만 시간 스탬프를 변경하려면 않습니다.

lpReserved

예약된 NULL이어야 합니다.

LpOverlapped

OVERLAPPED 구조체에 가리킵니다. 이 구조는 필요하며 유효한 OVERLAPPED 구조체에 가리켜야 합니다. 쓰기 작업이 OVERLAPPED 구조체에 지정된 오프셋에서 시작하여 쓰기 작업이 완료되기 전에 WriteFileGather 반환할 수 있습니다. 이 경우 WriteFileGather FALSE를 반환하고 ERROR_IO_PENDING GetLastError 함수를 반환합니다. 이 호출 프로세스가 쓰기 작업을 완료할 때까지는 처리를 계속할 수 있습니다. 응용 프로그램이 어느 GetOverlappedResult/HasOverlappedIoCompleted 최대 I/O 선택할 수 있습니다 완료 알림 또는 GetQueuedCompletionStatus 최대 I/O 선택하도록 완료.

값 반환

함수가 성공적으로 실행된 경우 반환 값은 0이 아닙니다. 함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 얻으려면 GetLastError를 호출하십시오.

설명

각 FILE_SEGMENT_ELEMENT 긴 64비트입니다. 모든 64 비트 버퍼 포인터 계산하는 데 사용되는, 따라서 응용 프로그램을 명시적으로 64 비트 포인터를 지원하지 않는 시스템의 요소의 상위 32 비트로 합니다.

파일의 일부가 다른 프로세스에 의해 잠겨 있어서 잠긴된 영역에 쓰기 작업을 겹치는 경우 이 함수가 실패합니다.

MS-DOS 운영 체제 달리 Windows NT null 쓰기 작업을 지정하는 대로 쓸 0 바이트로 해석하고 WriteFileGather 않은 잘라내기 또는 파일을 확장할. 잘라내기 또는 파일을 확장할 수 SetEndOfFile 함수를 사용하십시오.

현재 상태

Windows NT 4.0 서비스 팩 2에서 Windows NT를 실행하는 경우 SQL Server 성능 enhancer 역할을 새 인터페이스가 도입되었습니다. 이 향상된 기능을 분산/수집 및 입출력 기능이 포함됩니다.

Windows NT 4 .0의 최신 서비스 팩을 구하는 방법에 대한 자세한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
152734최신 Windows NT 4.0 서비스 팩을 구하는 방법

속성

기술 자료: 160606 - 마지막 검토: 2014년 2월 13일 목요일 - 수정: 1.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
키워드:?
kbnosurvey kbarchive kbmt kbnetwork KB160606 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com