update 속도 0 4 1,043

by 스캇 [SQLServer] [2018.09.29 08:04:40]


안녕하세요. mssql 2014입니다.  조금 무식한 질문인데 인덱스 없는 경우

쿼리툴 실행시 1번 ~ 3번 어떤순으로 속도가 가장 빠를까요?  (공통으로 천건이라고 치면)

1. update test set aa = 'Y' WHERE seq < 1000

2. update test set aa = 'Y FROM test, aaa where test.item = aaa.item and test.seq < 1000 

3. update test set aa = 'Y' WHERE seq  = 1   (천문장 한꺼번 실행)

   update test set aa = 'Y' WHERE seq  = 2

   update test set aa = 'Y' WHERE seq  = 1000

 

by 야신 [2018.09.29 09:35:58]

대량은 데이타가 있는 데이블이라 할때 인덱스가 어느컬럼에 있냐에 따라 달라질듯 하네요


by 우리집아찌 [2018.10.01 10:35:51]

인덱스가 없고 데이터가 엄청 많다 이러면 UPDATE시 지옥을 겪게 되실겁니다. ( UPDATE 시 ROW마다 FULLSCAN 탑니다)

차라리 전체 UPDATE시면

TRUNCATE 후 INSERT가 좋습니다.


by 스캇 [2018.10.01 16:06:25]

답변 감사합니다.


by 우리집아찌 [2018.10.01 17:02:06]

아 rowid 이용하는 방법도 있네요.. ㅎㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입