SQL SERVER 배열 파라미터 처리 합격

 SQL 배열의 어떤 개념이 없다, 우리가 실제로 쉼표로 구분 된 문자열에 전달

/ * 작업 우선 순위 점프 앞에 * / 
은 ALTER   PROCEDURE proc_TaskJumpPriority 

( 
     @ID  VARCHAR ( 100 ) - 이러한 작업 ID 복수 : 10, 11, 12   
)
  로서 
     DECLARE  @PointerPrev  int로 
     DECLARE을  @PointerCurr  int로 
    DECLARE을  @TId  int로 
     세트  @ PointerPrev  =  . 1 
     WHILE ( @PointerPrev  < LEN ( @ID ))
     선두 
        는 SET  @PointerCurr = CHARINDEX ( ' , ' ,@ID , @PointerPrev )
         는 IF는 ( @PointerCurr > 0 )
             시작 
                후 SET  @TId  =  전송 ( 문자열 ( @ID , @PointerPrev , @PointerCurr  -  @PointerPrev ) AS  지능 )
                 인쇄가  @TId 
                는 SET  @PointerPrev  =  @PointerCurr +를 1. 
            최종 
        ELSE을 
            BREAK 
    
    - 마지막 ID 뒤에는 쉼표가 없기 때문에, 당신이 후 루프 밖으로 얻을 수 
    는 SET  @TId  =  캐스트( 서브 스트링 ( @ID , @PointerPrev , LEN ( @ID ) - @PointerPrev + 1 ) 로서  INT )
     인쇄  @TId 
이동 
- '간부 proc_TaskJumpPriority '10, 20, 30을

 

우리는 SQL 서버 테이블 변수 안에 넣을 수있는 상점 ID에 도착.

 

표 변수는 : 상기 메모리의 해제는 적절한 완료되면 메모리에서, 범위는 스크립트의 실행 과정은, 스크립트가 실행될 데이터 세트의 데이터를 저장하는 시간 공동 소량.

장점 : 유연하고 사용 후 즉시 발표는 물리적 저장 공간을 차지하지 않습니다

단점 :에만 적합 함께 임시 저장 데이터의 소량, 케이블 구축 할 수없는 리드를 데이터 쿼리 효율성의 양 느린 약간 큰 메모리를 차지하면,

 

임시 테이블을 사용하여 테이블 변수는 데이터 크기 임계 값의 특정 금액 없으며, DBA는 상황에서 너무 많은 1000 개 데이터, 질의 열을 권장합니다.

 

임시 테이블 : 실제 하드 디스크에 임시 테이블, 내장 테이블 위치가 저장되는 임시 데이터베이스 데이터베이스, 당신은 오랜 시간 동안 데이터를 저장할 수 있습니다

장점 : 저장 장기 데이터, 인덱스, 일반 물리적 테이블 능력, 당신은 많은 양의 데이터를 저장할 수 있습니다

단점 : (연결이 닫힌 후 사라) 편리한 수동으로 드롭을 사용 후, 사용, 또는이 된 것입니다

특정 사용 :

임시 테이블 :

코드를 복사
테이블에서 #filterList에 1.SELECT. . . . . 


테이블 #tegeb의 2.CREATE (번호 INT, 소수의 금액, ststus VARCHAR) 

INSERT INTO TOP 10 번호 다음은 SELECT, 금액 #tegeb, atatus 제 (NOLOCK)와 business.dbo.order FROM


(가) #tegeb에서 임시 테이블이 있었다 * // 선택 (SELECT), 닫기 링크가 될 때까지 표 DBO 놓습니다. # tegeb // 수동으로 삭제해야합니다
코드를 복사

 

테이블 변수 :

1. DECLARE의 @temp 테이블 (INT 번호, 양 진수 ststus의 VARCHAR) 내로 삽입 business.dbo.order로부터 최고 10 수가 양 상태를 선택 @temp 

FROM @temp //已经不存在了* SELECT

 

 

SQL 문의 효율성을 확인 :

 

표시 시간 분석, 컴파일 및 (밀리 초)가 필요합니다 실행 쿼리 : ON SET STATISTICS 프로필. 
SET STATISTICS IO ON : 문 번호에 참조 된 각 테이블 스캔 보고서는 논리적 (캐시에 액세스 한 페이지 수)와 실제 읽기의 수 (디스크 액세스의 수)의 수는 관련 정보를 읽어보십시오. 
SET STATISTICS TIME ON : 각 쿼리 결과가 쿼리 실행의 프로필을 대신 수행하도록 설정 한 후 표시됩니다.

 

사용법 : 오픈 SQL Server 쿼리 분석기에서 다음 문을 입력 :

코드를 복사
세트에 통계 PROFILE 
ON을 SET STATISTICS IO 
는 SET STATISTICS 시간 ON 
GO / * - SQL 스크립트는 * 시작 / 
SELECT (선택) [TestCase에]를 FROM [TestCaseSelect] 
최종 SQL 스크립트 * / - GO / * 
꺼짐 SET STATISTICS 프로필 
는 SET STATISTICS IO OFF 
는 SET STATISTICS를 시간 OFF 

 

는 SET STATISTICS IO ON 
에서 거래-SQL 문에 의해 생성 된 디스크 활동량에 대한 주변 정보 - 
다음 SET STATISTICS IO OFF 
- 디스플레이 [성명의 이행에 대한 자세한 정보를 반환하고 문 자원에 대한 수요 추정] 
세트에 SHOWPLAN_ALL을 
- 닫기 [반환 성명의 이행에 대한 정보를 자세히 설명하고, 문은 자원에 대한 수요 추정] 
는 SET SHOWPLAN_ALL OFF를
코드를 복사

 

참조 :

https://www.cnblogs.com/ericli-ericli/p/6826646.html

 

추천

출처www.cnblogs.com/youxin/p/12405308.html