table omarket_category 

idx   int

oidx   int

occode  varchar(50)

ocname varchar(50)

osname varchar(50)

cexpire bit

cdate smalldatetime

 

 

table viewomarketCategoryAPI

idx int

oidx int

catenum varchar(50)

catefullname varchar(50)

cateshortname varchar(50)

 

 

위와같은 형태의 테이블이 있습니다

omarket_category 테이블의 ocName, csName 컬럼값을 viewomarketcategory 테이블의 cateFullName, cateShortName 컬럼값으로 업데이트 하는 쿼리입니다

문제는 레코드의 갯수가 1만개이상이 되니까 쿼리 실행이 엄청나게 느려져서 타임아웃이 걸려버립니다.

 

위 테이블 2개를 view로 아래와 같이 omarket_category.oidx = viewomarketcategory.oidx,   omarket_category.occode = viewomarketcategory.cateNum의 관계로 조인하여 뷰테이블(NewViewTAble)을 만들어서

update NewViewTable set  ocName = cateFullName ,osName = cateShortName where oidx = " & oidx & "

위와 같이 쿼리를 실행하면 2~3초만에 실행이 되어버립니다

기본적인 기초만 있는지라, 어떻게 활용해야 할지가 막막합니다.

비슷한 쿼리가 실행되어야 할 경우가 무한이 많은에 일일이 뷰테이블을 다 만들어서 한다는것도 그렇고...

뭔가 바람직한 방식은 아닐거 같다는 생각이 듭니다.

 

또한 아래의 쿼리에서 oCName, osName 두개의 컬럼만이지만, 이렇게 업데이트 해야 할 컬럼수가  한 열개쯤 되어버린다면 엄청난 처리속도 저하가 발생할것 같기도 합니다..

 

 

 

Sql = "UPDATE omarket_category SET"
Sql = Sql & " oCName = (SELECT cateFullName FROM viewomarketCategoryAPI WHERE  oidx = " & oidx & " AND cateNum = omarket_category.ocCode)"
Sql = Sql & ", osName = (SELECT cateShortName FROM viewomarketCategoryAPI WHERE oidx = " & oidx & " AND cateNum = omarket_category.ocCode)"
Sql = Sql & ", cExpire = 1"
Sql = Sql & ", cdate = '" & FormatDateTime(Now(),2) & " " & FormatDateTime(Now(),4) & ":00" & "'"
Sql = Sql & " WHERE  oidx = " & oidx & ""
Sql = Sql & " AND ocCode IN (SELECT cateNum FROM viewOmarketCategoryApi WHERE oidx = " & oidx & ")"

 

고수님들의 조언을 부탁드립니다

 

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1245
7602 임시테이블 사용법 문의.. [1] 킹멋쟁 2014.02.17 3215
7601 데이터베이스 단위 감사 문의 더메이드 2014.02.14 2891
7600 DB 메모리 모니터링 방법 및 릴리즈 시킬수 있을까요? [5] 언제쯤 2014.02.14 5366
» 쿼리 업데이트 조언좀 부탁드립니다 [1] 김세일_280618 2014.02.14 4500
7598 두가지 조건을 줘서 쿼리를 짜고 있습니다... [2] 사이드사이드 2014.02.13 4571
7597 DB 미러링 구성시에 방화벽 해제 안하고 구성하시는분 문의좀 드릴게요. [3] SE왕초보 2014.02.13 5764
7596 인덱스 관련 문의 [2] 냥냥 2014.02.13 4447
7595 SQLCMD를 배치파일로 실행하는 방법이 있을까요? [2] giant123 2014.02.13 13442
7594 ms sql 2012 Always on 구성 NiceHee 2014.02.12 5298
7593 도로명주소 검색 쿼리 조언 좀 해주세요. [4] 나뇽 2014.02.12 15053
7592 UNION ALL과 WHILE문을 같이 쓰는 방법은? [2] giant123 2014.02.12 5163
7591 기존 컬럼에 identity 속성을 추가하는 법. [2] 흑흑 2014.02.12 8996
7590 문자열 날짜 변경부분 질문드립니다. [2] 호야~♥ 2014.02.12 5261
7589 실행계획 좀 살펴주세요. [6] ssunsori 2014.02.12 3803
7588 SQLCMD 파일로 출력할 때 옵션이 궁금합니다. [1] giant123 2014.02.12 6768
7587 커져만가는 tempdb 용량 [1] 초심 2014.02.12 3721
7586 between쿼리문 활용 문의 드려요 [5] 야구소년 2014.02.12 5077
7585 User 가 어떤 role을 가지고 있고 그 role이 어떤 권한을 후룩후룩 2014.02.11 3366
7584 이런 쿼리는 어떻게 하나요? [1] 인생은 열심히 2014.02.10 4176
7583 가로결과를 세로로 출력하는 쿼리좀 알려주세요. [4] 아톰 2014.02.10 4087





XE Login