데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

대용량의 테이블을 Update하려고 합니다.

가령 1억건이 들어 있는 테이블이 있으며, 이 테이블의 id필드를 업데이트하려고 합니다.

 

update TableA

set id = calc(id)  -- id를 이리저리 계산해서 id 칼럼에 update함. 시간이 소요됨.

 

와 같이 한다면 시간이 많이 걸릴것으로 예상됩니다.  그래서 아래와 같이 update문장을 여러개로 나누어 동시에 실행을 시킬려고 하는데

문제점이 없는지 봐 주시면 감사하겠습니다.

 

update TableA

set id = calc(id)

where seq between 1 and 10000000

 

update TableA

set id = calc(id)

where seq between  10000001 and 20000000

......

update TableA

set id = calc(id)

where seq between  90000001 and 100000000  -- 구천일 ~ 일억

 

이렇게 Update문장을 10개정도로 나누고, SSMS를 10개 열어서  동시에 실행을 하려고 하는데 문제가 없겠는지요?

제 단순한 생각에는 첫 번째 Update문장이 실행되면 테이블에 Lock이 걸려서 두 번째부터 실행되는 Update문장은 실행이 안 될 것 같습니다. 그리고 (트랜잭션을 저장하려면) 로그도 엄청 쌓일것 같습니다...

 

위와 같은 방법에 문제가 없는지요?  문제가 있다면 또는 문제가 없더라도 더 효율적인 방법이 있으면 조언을 부탁드리겠습니다.

 

감사합니다..

 

Sql Server2005, Sql Server2008 둘 다 적용해야 합니다....

 

 

 

 

 

No. Subject Author Date Views
6492 SP 작성시 예외처리, 트랜잭션 질문입니다. [2] 치맥 2013.02.21 7964
6491 아주 기초적인 질문 인데요.. [1] bios 2013.02.21 6839
6490 임시테이블 alter table ~ add ~ 안먹히나요 ?? [1] 풀내기vber 2013.02.21 7413
6489 정렬 문의 드립니다. [5] 김미영_279087 2013.02.21 6336
6488 복제테이블 파티션 가능한가요? [3] 하흥수 2013.02.20 6874
6487 MSSQL 2008 64 --> MySql Linked Server 오류 질문입니다. [2] MySql00 2013.02.20 33254
6486 Select 좀 도와 주세요 [2] 이유진_301818 2013.02.20 6143
6485 음 뭔가 잘못된거같아서 질문드립니다. [2] 멍이 2013.02.20 6767
6484 개체 존재 여부 확인해서 드랍시키는 구문 질문입니다. [4] 치맥 2013.02.20 7102
6483 특수문자가 포함된 항목 찾기 [2] 조C 2013.02.20 12065
6482 db에 대한 요청이 몰려서 sql 서버가 느려지거나 떨어질때 해결방법은.. [9] zza 2013.02.19 6949
6481 간단한 쿼리 질문드립니다.부탁드립니다. [5] 이라부 2013.02.19 6618
6480 복제가 되지 않습니다. 도와주세요.ㅠㅠ [1] 두루마리휴지 2013.02.19 6790
6479 데이타 정렬에 관해서 문의드립니다. [4] 에버존 2013.02.19 6669
» 대용량의 테이블을 Update하려고 하는데 좋은 방법을 구합니다. [6] 김시준 2013.02.19 16536
6477 SQL2008 구문오류... [3] 동동그래머 2013.02.19 6830
6476 세개의 Table Join 후 Data 가로로 표현 [5] hwang88 2013.02.19 8079
6475 SQL 2005 Standard Install Error: 29503 [5] skymeet 2013.02.19 8881
6474 2008 서버에 서비스팩을 설치하면 R2와 동일해지나요? [10] 블랙 2013.02.18 11833
6473 count 관련 쿼리 조언 부탁드립니다. [4] 치맥 2013.02.18 7208





XE Login