SQLSERVER에서 쿼리 프로세서가 자원 부족 메시지

질문 중 최근 프로젝트, 조사 후 문에 서브 쿼리의 사용 후 사용하는 대신 연결 테이블이있는 방법이지만, 변화를 최소화하기 위해, 대신 달성하기 위해 존재 사용할 경우 너무 많은 쿼리 프로세서, 자원 부족이있을 것이다 발견

1, 새로운 기능, 참고 : 저장 프로 시저

ALTER의  FUNCTION  [ DBO ] . [ dnt_split ] 
( 
 @splitstring  VARCHAR을 ( 최대 )
  @separator  CHAR ( 1 )은 =  ' , ' 
) 
RETURNS  @splitstringstable  TABLE 
( 
 [ 아이템 ]  VARCHAR ( 200 ) 
) 
AS 
BEGIN 
    DECLARE의  @currentindex  INT의 
    DECLARE  @nextindex의  INT의 
    DECLARE을  @returntext  VARCHAR (200 ) 

    SELECT  @currentindex = 1 개 

    동안 ( @currentindex <= 데이터 길이 ( @splitstring ))
     BEGIN 
        SELECT  @nextindex = charIndex의 ( @separator , @splitstring , @currentindex는 )
         IF ( @nextindex = 0  OR  @nextindex은  IS  NULL )
             SELECT  @nextindex을 = 데이터 길이 ( @splitstring ) + 1 
        
        SELECT @returntext = 문자열 ( @splitstring , @currentindex , @nextindex - @currentindex ) 

        INSERT  INTO  @splitstringstable ( [ 아이템 ] )
         VALUES ( @returntext ) 
        
        SELECT  @currentindex = @nextindex + 1 개 
    의 END 
    RETURN의 
END를

2, 다음 문에서 수정

INS = 모두 StringBuilder 새로운 새 모두 StringBuilder ();
 // ins.Append ( "(") 
ins.Append ( "12은 13이고, " ); // ins.Append ( ")"); // +의 변성 바로 아래 전면 ) (ins.ToString , 직후 것은 수정
문자열 strFilter = " 존재 (dnt_split (SELECT * \ ' ' + ins.ToString () + ' \' '') 여기서 아이템 = xxxid) " ;

직접 원래 단어에 strExist1을 대체한다.

3, 왜 문에 문제가있는 것
명령문이 서브 테이블 할 데카르트 제품, 낮은 시스템 리소스의 기본 테이블에 해당하기 때문에, 그것은 문제가 될 것이다 (실제로, 다른 컴퓨터의 I 더 나은 성능이 존재하지 않는 이 문제).

4, 다른 하나는 존재에
전송 : HTTPS : //zhidao.baidu.com/question/134174568.html

테이블 데이터 A 및 B에 나타난 데이터와 같은 대용량과 거의 효율 존재하는 경우, A는 선택적으로 사용된다. 에서 다음과 같이 존재의 차이 :

4.1, 다른 상황의 사용

SQL은 서브 쿼리에 적용하면 주 조회 테이블 적은 결과 세트 기록하며 큰 인덱스 테이블을 갖는다. 주요 질의 덜 기록, 하위 쿼리 큰 테이블의 외부 층에 존재하는 SQL 적용, 인덱스는 시간이.

4.2 상이한 구동 시퀀스

IN 하위 쿼리는 첫 번째 룩업 테이블이며, 다음 다음 선별 조건에 따라 표에보고 직교 제품을한다. 존재하는 테이블 구동 방문 할 최초로 외부 테이블이다.

4.3, NULL은 다른 프로세스에 대한 값.

IN은 NULL 값이 존재 처리됩니다,하지 NULL을 처리.

4.4 다른 기본 원칙

해시에 대한 외부 및 내부 테이블 조인하는 루프 사이클은 내부 테이블 쿼리 재순환 각 루프의 등장으로, 그리고 존재한다.

추천

출처www.cnblogs.com/zhaogaojian/p/12119282.html