다시 한 번 기본을..

 

SQL Server가 단일 SELECT 문을 처리하는 데 사용하는 기본 단계는 다음과 같습니다.

1. 파서는 SELECT 문을 검색하고 그 결과를 키워드, 식, 연산자 및 식별자와 같은 논리 단위로 분류합니다.

 

2. 시퀀스 트리라고도 하는 쿼리 트리가 작성되어 결과 집합에서 필요로 하는 서식으로 원본 데이터를 변환하는 데 필요한 논리 단계를 정의합니다.

 

3. 쿼리 최적화 프로그램은 소스 테이블에 액세스할 수 있는 여러 다른 방법을 분석합니다. 그런 후 리소스 사용을 줄이는 동시에 결과를 가장 빨리 반환하는 일련의 단계를 선택합니다. 쿼리 트리는 이러한 일련의 단계가 기록되도록 업데이트됩니다. 최적화된 최종 쿼리 트리 버전은 실행 계획이라고 합니다.

 

4. 관계형 엔진이 실행 계획을 실행하기 시작합니다. 기본 테이블의 데이터를 필요로 하는 단계가 처리될 때 관계형 엔진은 저장소 엔진이 관계형 엔진에서 요청된 행 집합의 데이터를 무시하도록 요청합니다.

 

5. 관계형 엔진은 저장소 엔진에서 반환된 데이터를 결과 집합에 대해 정의된 서식으로 처리하고 클라이언트에 결과 집합을 반환합니다.

 

http://msdn.microsoft.com/ko-kr/library/ms190623(v=sql.100).aspx

 

 

 MSSQL *
UPDATE table_a
   SET table_a.column_a = table_b.column_b
  FROM table_a,
            table_b, 
 WHERE table_a.userid  = table_b.userid
 
 
* 오라클 *
UPDATE table_a
   SET column_a = column_b
 WHERE userid IN (SELECT userid
                    FROM b)
UPDATE table_a
   SET (column_1, column__2) = (SELECT column_a, column_b
                                  FROM table_b
                                 WHERE join_column_1 = table_a.join_column_a);
UPDATE table_a
   SET column_1 = (SELECT COLUMN
                     FROM table_b
                    WHERE userid = table_a.userid);
UPDATE table_a
   SET (column_1) = (SELECT COLUMN
                       FROM table_b
                      WHERE userid = table_a.userid AND url IS NOT NULL); 

+ Recent posts