800만건 조회 성능향상 가능할까? 0 5 3,514

by 준일정 [설치/설정] mssql sql oracle mysql [2020.04.16 14:38:57]


안녕하세요 

800만건 테이블 조회하는데 서버에 사람이 몰리면, 가끔씩 락이 걸리거든요 

다중키 테이블이고 키는 2개 뿐입니다. 

 

근데 데이터가 워낙 많다보니 락이 걸리더라고요 

그래서 발견한 문제가 

 

A컬럼 

B컬럼 

 

이 두개가 다중키인데 

A컬럼은 VARCHAR(4) 

B컬럼은 VARCHAR(8) 입니다. 

A컬럼의 데이터는 전부 4자리 숫자이고 

B컬럼의 데이터는 전부 7자리 숫자입니다. 

 

혹시 해당 두 컬럼의 데이터타입을 CHAR로 바꾸게 되면

{

 

A컬럼 -> CHAR(4) 

B컬럼 -> CHAR(7)  로 바꾼다면 ... 

 

성능 향상에 도움이 될까요?

 

by 우리집아찌 [2020.04.17 09:46:50]

db가 어떤것인가요?

잦은 업데이트가 되는 테이블인가요?

업데이트가 되면 특정 컬럼만 자주 되나요?

혹시 sql 성능문제는 아닌가요?


by 준일정 [2020.04.17 11:45:23]

db는 mssql이고요 

잦은 업데이트가 되는 테이블입니다. 

업데이트가 되면 특정 컬럼 한 5개 내외로 자주 업데이트 되긴합니다. 

테이블 자체는 위에서 언급한 것 처럼 키가 2개인 단순한 테이블이긴 합니다. 

 


by 마농 [2020.04.17 12:13:09]

단순 조회용 쿼리라면 WITH (NOLOCK) 이용해 보세요.


by 준일정 [2020.04.17 13:06:14]

단순 조회긴한데 , 몇몇 테이블이랑 조인도 걸리고 update join도 써야하고 해서 구조는 단순하지만 

계속 문제네요; ㅠ


by pajama [2020.04.17 16:46:00]

접속자가 많을 때 lock 대기로 인해 쿼리가 느린거라면 with nolock으로 lock 회피할수 있을 것 같고, 건수가 800만건이라 원래 쿼리가 느리다면 쿼리 튜닝을 하는게 좋을 것 같습니다.

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