White Whale Studio

MSSQL - 대용량 DB 작업시 Loop 작업 본문

IT Engineering/SQL

MSSQL - 대용량 DB 작업시 Loop 작업

glorymind 2021. 4. 9. 15:37
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/****** SSMS의 SelectTopNRows 명령 스크립트 ******/
-- 반복할 횟수 정의
declare @cnt int = 500
 
-- 임시 테이블 정의
declare @tmp  table (
    CallIDKey nvarchar(128)
)
 
-- 반복분 시작
while @cnt >= 0
BEGIN 
 
-- 임시 테이블에 입력된 데이터 초기화
delete from @tmp
 
-- 임시테이블에 조건에 해당하는 항목들 INSERT
insert @tmp
Select TOP 1000 idx from TB_DATA where LEN(keyData) < 15
 
-- 임시테이블에서 IDX를 찾아서 해당 하는 아이템에 대한 암호화 작업
update TB_DATA 
set
keyData = master.dbo.AES256Encrypt(keyData),
Email = CASE WHEN LEN(Email) > 0 THEN master.dbo.AES256Encrypt(Email) ELSE Email END
where idx in (select idx from @tmp)
 
-- 카운터 INDEX 감소
SET @cnt = @cnt - 1
print @cnt;
 
END
cs

 

대용량 데이터인 경우 전체 데이터에 대한 작업을 일괄 작업하기에는 속도나 부하 측면에서 부담이 많이 되는 경우

loop를 활용하여 위와 유사하게 작업한다.

 

 

반응형

'IT Engineering > SQL' 카테고리의 다른 글

Instant SQL Formatter / 쿼리 정리 사이트  (0) 2020.03.19
테이블 내용 복사하기  (0) 2015.03.24
제법 자주 쓰이는 SQL문  (0) 2012.07.10
Comments