database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Tutorials 194 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 194
SQL SERVER DTS [4]
작성자
정재익(advance)
작성일
2001-12-07 12:43
조회수
15,575

SQL SERVER DTS (8) - DTS 패키지 실행 예약

 

SQL Server 데이터 변환 서비스(DTS)에서는 실행예약 기능을 이용할 수 있다.

예를 들어 코리아인터넷닷컴 처럼 사용자가 마이폴더에 가장많이 저장한 기사들만을 모아서 회원들에게 보여주고 싶다면 어떻게 해야 할까? 복잡한 조인을 통해 뷰로 생성한 다음 그 뷰를 보여 줄 수도 있다. 하지만 동시 접속자 수가 만만치 않은 코리아인터넷닷컴으로서는 너무나 DB서버에 부하를 많이주는 행위이다.

이런 경우 간단히 DTS의 실행예약 기능을 이용해서 가장 부하가 적은 매일 새벽 4시에 복잡한 뷰테이블의 값들을 특정한 테이블로 변환시키는 스케쥴링을 걸어 놓는다면 아주 쉽게 이 문제를 해결 할 수 있다.

 

오늘은 DTS 패키지 실행 예약기능을 알아보자.

 

데이터 변환 서비스(DTS) 패키지를 특정 시간에 한 번 또는 반복 간격으로 실행되도록 예약할 수 있다. 예를 들어, 다음과 같다.

  . 매일 밤 12시
  . 매주 일요일 오전 6시
  . 매월 첫째 또는 마지막 날 

예약된 DTS 패키지는 하나의 작업으로 SQL Server 에이전트에 의해 실행된다.

결국SQL Server 에이전트는 원본으로 사용하는 예약 자동화를 제어하므로 예약된 패키지가 실행되기 위해 SQL Server 에이전트도 실행되어야 한다. DTS 패키지의 실행을 예약하려면 다음 중 하나를 수행한다.

  . SQL Server 엔터프라이즈 관리자에서패키지 예약
  . SQL Server 에이전트를 사용하여 패키지 예약

패키지 예약 옵션을 사용하여 DTS 패키지를 예약하려면

  . SQL Server 엔터프라이즈 관리자 콘솔 트리에서 데이터 변환 서비스를 확장한 
    다음 로컬 패키지 또는 메타데이터 서비스 패키지를 클릭한다.
  . 세부 정보 창에서 예약할 데이터 변환 서비스(DTS) 패키지를 마우스 오른쪽 
    단추로 클릭한 다음 패키지 예약을 클릭한다.
  . 되풀이 작업 일정 편집 대화 상자에서 필요한 정보를 입력한다. 
  . 예약된 패키지는 서버 등록 중에 지정된 사용 권한을 사용하여 SQL Server 
    에이전트에 의해 실행된다. Windows 인증을 사용하는 경우, SQL Server 
    에이전트는 자체 보안을 사용하여 패키지를 로드하려고 시도하지만 패키지 
    로드를 위해서는 가능한 SA계정을 통해 로드하면 좋다.

 

SQL Server 에이전트를 사용하여 DTS 패키지를 예약하려면

  . SQL Server 엔터프라이즈 관리자 콘솔 트리에서 관리를 확장한 다음 SQL 
    Server 에이전트를 클릭한다.
  . 세부 정보 창에서 작업을 마우스 오른쪽 단추로 클릭한 다음 새 작업을 클릭한다.
  . 일반 탭에서 새 작업을 구성하기 위한 정보를 입력한다. 
  . 단계 탭을 클릭하고 새로 만들기를 클릭한 후 다음을 수행한다. 
      . 단계 이름 상자에 새 이름을 입력한다.
      . 유형 목록에서 운영 체제 명령(CmdExec)을 클릭한다.
      . 명령 텍스트 상자에서 패키지에 대해 dtsrun 명령을 입력한다. 

 

 

SQL SERVER DTS (9) - DTS 패키지 저장

 

데이터 변환 서비스(DTS) 패키지를 저장할 때는 모든 DTS 연결, DTS 작업, DTS 변환 및 워크플로 단계를 저장하고 DTS 디자이너 디자인 시트에 이러한 개체의 그래픽 레이아웃을 보관한다.

다음과 같은 방법으로 DTS 패키지를 저장할 수 있다.

 

SQL Server에 DTS 패키지를 저장하려면

  . 데이터 변환 서비스(DTS) 디자이너의 도구 모음에서 저장 단추를 클릭한다.
  . 위치 목록에서 SQL Server를 클릭한다.
  . 나머지 필수 필드를 입력한다. 
  . DTS 패키지가 Microsoft SQL Server에 이미 저장되어 있을 경우에는 DTS 
    패키지 저장 대화 상자가 나타나지 않고 새 버전이 저장된다. 패키지가 구조적 
    저장소나 Microsoft Visual Basic 파일 또는 SQL Server 2000 메타데이터 
    서비스에 저장된 경우에는 다른 이름으로 저장을 클릭하여 SQL Server에 
    저장한다.

메타데이터 서비스에 DTS 패키지를 저장하려면 

  . 데이터 변환 서비스(DTS) 디자이너의 패키지 메뉴에서 저장을 클릭한다.
  . 위치 목록에서 메타데이터 서비스를 클릭한다.
  . 나머지 필수 필드를 입력한다. 
  . 패키지가 Microsoft SQL Server 2000 메타데이터 서비스에 이미 저장되어 
    있을 경우에는 DTS 패키지 저장 대화 상자가 나타나지 않고 새 버전이 저장된다. 
    패키지가 구조적 저장소나 Microsoft Basic 파일 또는 SQL Server에 저장된 
    경우에는 다른 이름으로 저장을 클릭하여 메타데이터 서비스에 저장한다.

구조적 저장소 파일에 DTS 패키지를 저장하려면 

  . 데이터 변환 서비스(DTS) 디자이너의 도구 모음에서 저장을 클릭한다.
  . 위치 목록에서 구조적 저장소 파일을 클릭한다.
  . 나머지 필수 필드를 입력한다. 
  . DTS 패키지가 구조적 저장소 파일에 이미 저장되어 있을 경우에는 DTS 패키지 
    저장 대화 상자가 나타나지 않고 새 버전이 저장된다. 패키지가 Microsoft 
    SQL Server, SQL Server 2000 메타데이터 서비스 또는 Microsoft Visual 
    Basic 파일에 저장된 경우에는 다른 이름으로 저장을 클릭하여 구조적 저장소 
    파일에 저장한다.

DTS 디자이너를 사용하여 Visual Basic 파일에 DTS 패키지를 저장하려면 

  . 패키지 메뉴에서 다른 이름으로 저장을 클릭한다.
  . 위치 목록에서 Visual Basic 파일을 클릭한다.
  . 파일 이름 상자에 Microsoft Visual Basic 파일의 이름을 입력한다. 

 

 

SQL SERVER DTS (12) - DTS 패키지의 성능 향상

 

데이터 변환 서비스(DTS) 패키지의 성능 향상을 위해 다음과 같은 요소를 고려해 볼 수 있다.

  . ActiveX 스크립트 성능향상
  . 데이터 펌프 성능 향상
  . 데이터 기반 쿼리 작업 대 데이터 변환 작업시 성능향상
  . 대량 삽입 및 bcp 사용시 성능향상
  . 기타 SQL Server 솔루션 사용시 성능향상

ActiveX 스크립트 성능향상

 

변환 유형과 선택한 스크립트 언어에 따라 Microsoft ActiveX 변환 스크립트를 사용하는 데이터 펌프 작업은 복사 작업보다 시간이 2-4배까지 더 걸린다.

서수 값을 사용하여 ActiveX 변환에서 열을 참조하는 것은 이름별로 열을 참조하는 것보다 훨씬 빠르게 수행된다.

 

예를 들면 다음 식을

 

DTSSource(1)

 

다음 식 대신 사용할 수 있다.

 

DTSSource("CustomerID").

 

열 수가 20보다 작은 경우에는 이러한 속도 향상이 두드러지지 않으나 변환에 많은 열이 포함될 때에는 속도 향상이 두드러질 수 있다.

열 수가 더 작을 때에는 이러한 최적화를 무시하여 스크립트를 보다 쉽게 읽을 수 있게 만든다.

또한 VBScript으로 작성한 스크립트는 Microsoft JScript로 작성한 스크립트보다 약 10% 빠르게 실행되고 Microsoft JScript로 작성한 스크립트는 PerlScript로 작성한 스크립트보다 약 10% 빠르게 실행된다.

 

데이터 펌프 성능 향상

 

데이터 펌프는 데이터 변환 작업과 데이터 기반 쿼리 작업의 변환 구성 요소이다. 이 작업을 사용하여 데이터를 변환하면 다음의 경우에 성능을 향상할 수 있다.

  . 데이터의 양이 많을 때
  . 변환이 많을 때 
  . 스크립트 코드가 복잡할 때 

 

이런 상황에서 성능을 향상시키려면 가능할 경우마다 다대다 매핑을 사용한다. 이렇게 하면 각 열에 대해 별도의 변환 기능을 매핑하는 것을 피할 수 있다. 각 변환에 대해 스크립트 엔진이 호출되지 않는다. 결국 성능이 더 빨라진다.

DTS 가져오기/내보내기 마법사는 다대다 열 매핑을 사용하여 패키지를 만든다. 그러나 기본적으로 DTS 디자이너는 가독성을 향상시키기 위해 변환에 일대일 열 매핑을 할당한다. 따라서 DTS 디자이너를 사용할 경우에는 가능한 한 많은 변환을 다대다 구성으로 다시 매핑하는 것이 좋다. 스크립트에서 서수를 사용할 때와 마찬가지로 이러한 최적화는 변환 횟수가 증가할수록 더욱 두드러진다. 일반적으로 20회 이상의 변환이 있을 경우 성능이 현저하게 저하된다.

 

데이터 기반 쿼리 작업 대 데이터 변환 작업

 

Microsoft SQL Server가 데이터 변환 작업의 데이터 대상이면 기본적으로 IRowsetFastLoad 인터페이스를 사용한다. SQL Server가 대상이 아니면 데이터 변환 작업은 일반적으로 INSERT 문을 보내는 IRowsetChange 인터페이스를 사용한다.

데이터 기반 쿼리 작업의 변환은 준비된 삽입 작업을 사용하는 대상에 대해 ICommand 인터페이스를 사용한다. 이 방법은 대상 OLE DB 공급자가 인터페이스를 구현하는 방식에 따라 데이터 변환 작업에서 변환에 사용되는 IRowsetChange 인터페이스보다 더 빠를 수 있다. 그러나 ICommand 인터페이스나 IRowsetChange 인터페이스를 사용하는 변환은 IRowsetFastLoad 인터페이스를 사용하는 변환보다 성능이 좋지는 않다.

 

대량 삽입 및 bcp 사용

 

대량 삽입 작업은 Transact-SQL BULK INSERT 문을 만들고 실행한다. Microsoft OLE DB Provider for SQL Server가 지원하는 대량 삽입은 텍스트 파일 가져오기 작업을 수행하기 위한 bcp 또는 데이터 펌프보다 훨씬 더 빠르다. 그러므로 변환을 사용하지 않을 경우 대량 삽입 작업을 사용하여 더 빨리 처리한다.

BULK INSERT 문은 파일 가져오기 작업에만 제한적으로 사용된다.

데이터를 가져올 때 bcp 및 DTS 복사 작업은 거의 동일한 속도로 진행된다. 그러나 데이터를 내보낼 때 bcp 작업 속도는 약 3-6배 빨라질 수 있다. SQL Server 데이터에만 적용되는 원시 bcp는 DTS 데이터 펌프보다 더 빠르다. BULK INSERT와 원시 bcp는 비슷한 속도로 진행된다.

 

기타 SQL Server 솔루션 사용

 

Transact-SQL 쿼리는 변환이나 유효성 검사를 수행하지 않고 테이블 간에 데이터를 이동하는 가장 빠른 방법이다. 여러 원본이 있을 때는 SELECT INTO 문과 같은 분산 쿼리를 실행할 수 있다.

여러 패키지를 사용하는 환경에서 각 DTS 패키지는 하나의 일괄 처리 작업으로 또는 SQL Server 에이전트를 사용하여 dtsrun을 사용하는 별도의 프로세스로서 실행되어야 한다. 이렇게 하면 DTS가 하나의 클라이언트 프로세스가 된다.

1,000개 이상과 같은 많은 수의 패키지를 하나의 서버 프로세스로서 실행해야 할 경우 스냅샷, 트랜잭션 및 병합 기능을 제공하는 SQL Server 2000 복제 기능을 사용 할 수 있다. 또한 주 작업이 변경된 SQL Server 데이터만 복사할 경우에도 SQL Server 2000 복제 기능을 사용할 수 있다.

[Top]
No.
제목
작성자
작성일
조회
237SQL 서버 메모리 사용 모니터링 방법
정재익
2002-01-08
15497
236SQL 서버 디스크 동작 모니터링 방법
정재익
2002-01-08
12930
210Transact-SQL
정재익
2001-12-14
20545
194SQL SERVER DTS [4]
정재익
2001-12-07
15575
193SQL SERVER DTS [3]
정재익
2001-12-07
14863
192SQL SERVER DTS [2]
정재익
2001-12-07
12650
191SQL SERVER DTS [1]
정재익
2001-12-07
20437
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.046초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다