INF: SQL 서버 처리량에 대한 클라이언트 효과

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

이 페이지에서

요약

성능에 영향을 미치는 일반적인 영역을 평가에 가장 일반적으로 측면을 프로세서 속도, 디스크 I/O 및 메모리 서버의 간주됩니다. 이러한 부분 서버 성능을 적절한 성능을 중요한 수 있지만 네트워크 대기 및 클라이언트 처리 시간으로 또한 시스템의 전체 성능이 큰 영향을 미칠 수 있는 요인 고려해야 합니다.

이 문서에서는 후자의 영역을 설명하고 서버에 있을 수 있습니다 어떤 영향을 평가하는 데 필요한 지침을 제공합니다.

추가 정보

다음 예제에서는 문서 전체에서 사용됩니다. 두 연결 단계를 Transact-SQL 구문 작은 차이가 단지 동일한 업데이트를 수행합니다.

연결 1

use pubs
go
select convert(char(30), GetDate(), 9) "Start Time"
go

            Begin transaction

   Go   ==>   Send to SQL Server and process results

            Update authors set au_lname = au_lname

   Go   ==>   Send to SQL Server and process results

Commit / Rollback transaction

   Go   ==>   Send to SQL Server and process results

select convert(char(30), GetDate(), 9) "End Time"
go
				

연결 2

use pubs
go
select convert(char(30), GetDate(), 9) "Start Time"
go
begin transaction
if(0 = @@ERROR)
begin
   update authors set au_lname = au_lname
   if(0 = @@ERROR)
   begin
      commit transaction
   end
   else
   begin
      rollback transaction
   end
end
go    ==>   Send to SQL Server and process results
select convert(char(30), GetDate(), 9) "End Time"
go
				

라운드트립 네트워크

연결 1 세 라운드트립을 SQL Server 컴퓨터에 있어야 합니다.
  • 트랜잭션 시작
  • 업데이트
  • 커밋/트랜잭션 롤백
업데이트를 완료하기 위해 단일 출장을 2 연결이 필요합니다.

쿼리 취소

DB-Library 및 ODBC API 비동기 쿼리 처리를 지원합니다. 예를 들어, DB-Library dbdataready 함수를 사용하여 쿼리 완료 상태를 폴링하는 클라이언트는 허용합니다.

DB-Library에 dbdataready 함수는 DataReadySleep 값에 의해 제어됩니다. DataReadySleep 레지스트리 키에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
159234: INF: Dbdataready에 의해 사용된 절전 값 변경 방법

절전 시간, 시간 주는 영향

기본적으로 250밀리초 절전 값입니다.

연결 1 세 개의 둥글고 라운드트립을 SQL Server에 있습니다. 기본적으로 클라이언트 750 시간 밀리초 단위로 대기, 최소 시간을 실제 네트워크 전송에 계산 발견한. 대기 시간이 계산되는 (250밀리초 * 3) = 750 시간 (밀리초) 입니다.

연결 2 단일 출장 표시하고 250밀리초 대기 시간, 실제 네트워크 전송 시간 계산 중 최소 발견한.

이 다음은 속도 비율로 세 가지 변경하려면 단순히 장점은 Transact-SQL 구문 수용하고 제거하는 두 라운드트립 네트워크.

네트워크 왕복 다른 사용자에게 미치는 영향

연결 1 트랜잭션이 열린 500밀리초 최소 보유합니다. 트랜잭션이 열린 후 500 밀리초 업데이트를 완료하고 다음 커밋 또는 롤백 트랜잭션을 사용합니다. 데이터베이스의 동시성 다른 사용자는 수정 중인 레코드를 액세스할 수 없습니다.

연결 2 트랜잭션 경우에만 같은 긴 작업을 완료하는 데 필요한 열어 둡니다. SQL Server 및 ISQL/w 실행하는 133 MHz Pentium 단일 프로세서 컴퓨터에서, 다음 시간은 볼 수 있습니다.

참고: 이 최종 네트워크 I/O 다음 예제 중 하나가 표시되지 않습니다. 커밋 또는 롤백 후에 잠금이 해제될 있지만 최종 I/O 않은 tallied.
   Begin transaction                5 milliseconds
   Update                          20 milliseconds
   Commit/Rollback transaction      7 milliseconds
      TOTAL                        32 milliseconds
				

연결 1 보다 큰 처리 창 필요하며 트랜잭션 대기 시간이 크게 확장하여 반면 2 연결을 약 32 밀리초 단위로 완료됩니다.
   Begin transaction                5 milliseconds
   Network I/O                    250 milliseconds
   Update                          20 milliseconds
   Network I/O                    250 milliseconds
   Commit/Rollback transaction      7 milliseconds
      TOTAL                       532 milliseconds
				

네트워크 시간 앞부분에 나와 있는 것처럼 세 가지 간단한 요소입니다. 그러나 다른 데이터베이스 사용자들은 예제에서는 500KB로 잠금 영향을 16 비율 있습니다 (532/32 = ~ 16).

이제 이 간단한 예제에서는 28.8 모뎀으로 연결하는 원격 휴대용 컴퓨터에서 있는지 가정해 보겠습니다. dbdatareadysleep 매개 변수에 의해 부과된 250 밀리초 지연 이외에 느린 링크를 통해 정보를 실제로 전송하는 데 걸리는 시간을 appreciable 있습니다. 연결 1 연결 2 주로 클라이언트 컴퓨터 속도에 의해 영향을 받을 수 있지만 다른 데이터베이스 사용자들은 경우에도 큰 계수로 영향을. 명령은 한 번, SQL 서버 32 밀리초 단위로 처리되는 보내집니다. 예상대로 인해 속도가 느린 모뎀. 원격 사용자가 있는 감속이 발생하는 시스템의 유일한 사용자가 있습니다.

클라이언트 지연 시간

클라이언트가 받은 결과를 처리하는 동안 경과되는 시간을 클라이언트 지연 시간입니다. 연결 1부터 다시 살펴보면 이 프로세스에 미치는 영향에 빠르게 볼 수 있습니다. 결과 집합을 처리하기 위해 클라이언트에 대한 추가적인 10밀리초가 필요한 경우에는 전체 트랜잭션 시간이 다른 30 밀리초 추가할 수 및 또 다른 트랜잭션 대기 시간이 20 밀리초.

이제 예제를 다시 전환하십시오. 이 경우 온라인 시스템의 재고 테이블에서가 있습니다. 개발 및 기록 빠른 온라인 주문 처리 시스템 합니다 설치 월 소요된. 사용자가 검색, 구입, 수 및 다른 옵션 간에 쇼핑 카트에 유지합니다. tbllnventory 테이블의 다음과 같습니다.
   tblInventory
      iProductID       int
      strTitle         varchar(50)
      strDescription   varchar(255)
      iSize            int
      iInStock         int
      iOnOrder         int
      iType            int
				

일부 cereal 구입해야 할. 그러나 사용할 수 있는지 싶습니다. 응용 프로그램이 다음 쿼리를 문제 있도록 우리는 2, 입력할 때 cereal을 정의할 수 있습니다. 이 예제에서는 750 데이터베이스에 포함된 cereal 항목을 관련.
   Select strTitle, strDescription, iSize, iInStock from tblInventory
   where iType = 2
				

SQL Server 됩니다 및 쿼리 구문 컴파일하고 결과를 반환하는 시작합니다. 적절한 페이지에 공유 잠금이 얻어집니다. 잠금 블록 업데이트, 삽입 및 삭제 작업에 공유 기억해야 합니다.

응용 프로그램의 전국적인, 사용되기 때문에 동시에, 여섯 명의 다른 사람들이 cereal 주문을 했습니다.

SQL Server 첫 번째 테이블 형식 데이터 스트림 (TDS) 패킷의 채우고 클라이언트로 보내는 클라이언트가 결과를 처리하는 기다립니다. 시간 동안 클라이언트 (클라이언트 대기 시간), 결과 처리 중인 SQL Server 처리 위치 페이지에서 공유 페이지 잠금을 보유할 계속됩니다. 이 공유 잠금의 주문을 완료할 시도하는 사용자를 차단할 수 있습니다.

같은 간단한 작업을 것 같습니다. SQL Server에서 결과 집합을 선택하고 값 목록 상자에 삽입하십시오. 133 MHz Pentium 컴퓨터에 750 항목을 방금 1초 있는 목록 상자에 추가할 수 있습니다. 목록 상자 최대한으로 동안 사용하지 않으면 경우에만 1-3 초 걸립니다. 목록 상자를 비활성화하여 클라이언트 대기 시간을 크게 줄일 수 있습니다.

경우에도 항상 해당 잠금을 더 줄이기 위해 선택 작업을 변경할 수 있습니다. 쿼리를 다음으로 변경하여 공유 잠금의 노출을 제한할 수 있습니다.
   Insert * into #tblSelect from
   Select strTitle, strDescription, iSize, iInStock from tblInventory
				

   Select * from #tblSelect
				

SQL Server에서 격리된 쿼리와 임시 테이블 이동 및 재고 테이블에서 모든 공유 잠금이 해제될 때까지 결과를 반환하는 시작되지 않습니다. 이 SQL Server 결과를 위해 tempdb 이동 필요한 시간은 인벤터리 테이블에 대한 공유 잠금은 보유됩니다 시간을 제한합니다. 다시 데이터베이스 및 클라이언트가 아닌 컨트롤입니다.

"스마트" 클라이언트 만들기 위해 비슷한 동작을 수행하는 다른 방법입니다. 목록 상자를 채우는 대신 더 빠를 배열에 로드할 수 있습니다. 그러나 아직 네트워크 처리량이 바인딩되는 문제가 있습니다. 임시 테이블 이러한 경우에 좋은 솔루션입니다.

볼 수 있듯이, 클라이언트가 데이터베이스 처리량을 피벗 롤을 재생할 수 있습니다. 원격 및 보고 시스템을 사용하여 작업할 때 특히 주의해야 합니다. 클라이언트가 잠금을 보유하는 동안 결과를 처리하는 데 소요되는 시간을 데이터베이스 처리량에 영향을 줄 수 있습니다. 이러한 유형의 문제 하드 대기 기간 100 밀리초 단위로 시간을 수 있기 때문에 볼 수 있으므로 함께 저장된 sp_who 절차를 참조하십시오 어려울 수 있습니다. 느린 링크를 동작을 빠르게 볼 수 있습니다. RAS 링크에서 응용 프로그램을 실행하고 전체적인 동작을 것입니다 참조하십시오. 또한 전체 SQL 추적 유틸리티를 신중하게 응용 프로그램을 프로파일링하는 데 이용할 수 있습니다.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
165951: INF: SQL Server에 [NULL]에 대한 처리 결과

172117: INF: SQL 트랜잭션 코드 프로필 저장된 프로시저 및 트리거 방법

162361: INF: 이해 및 SQL Server 차단 문제 해결

167610: INF: 쿼리 성능 하락 평가

48712: INF: DB-Library에 올바르게 시간 제한 처리

117143: INF: 문서 및 dbcancel() 또는 sqlcancel() 사용 방법

속성

기술 자료: 180775 - 마지막 검토: 2014년 1월 24일 금요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 6.5 Standard Edition
키워드:?
kbnosurvey kbarchive kbmt kbinfo KB180775 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