티스토리 뷰
[오라클] 데이터베이스 쿼리 테이블은 소문자 대문자로 보기 쉽게 작성하는게 좋을까?
결론은 협업 업무를 하게 되면대문자나 소문자나 코딩 규칙을 통일해서 사용하는게 좋다.
설명 :
들여쓰기, 띄어쓰기, 대/소문자등 코딩 규칙을 정해놓고 사용하면 가독성이 좋아지지만
실수로 잘 못 작성한 경우 같은 쿼리인데도 대/소문자 구분 때문에 다른 쿼리로 인식하게 되어
메모리에 접근해서 가지고 올 쿼리를 새로운 쿼리로 인식하여 하드 파싱을하여 저장을 하게 된다.
많이 실행되는 쿼리 일 수록 속도 저하를 가중 시킬 수 있다.
덧붙여서 쿼리에서 변수를 다이내믹쿼리로 작성하는 이유도 이러한 이유때문이다.
만약 select 변수 from dual 이런 쿼리가 있는데 변수를 하드코딩하여 사용한 경우
1번 쿼리. select 1 from dual
2번 쿼리. select 2 from dual
1번, 2번 쿼리가 실행된다고 했을 때 1번이 실행되고 2번 쿼리는 메모리에 없기 때문에 하드파싱되어 메모리에 쓸모없이 쌓이게된다.
오라클 서버에서는 SQL문이 실행될 때 이전에 사용된 쿼리인지 확인하는 쿼리문마다 HASH 값이 있다.
쉽게 설명하면 지문이라고 생각하면 되겠다.
문자의 모양이 다르면 모두 다른 hash 값을 가지고 있다고 생각하며 된다.
즉, 대/소문자로 구성된 같은 쿼리라도 HASH 값이 달라지기 때문에
매번 하드 파싱(hard parsing)하게 되어 서버에 부하를 주게 된다.
업체마다 다르게 사용하겠지만 간단하게 대문자로 사용하기도 한다.
물론 규칙을 잘 지킬 수 있는 회사 구조라면 키워드는 대문자, 테이블, 컬럼은 소문자로 하면된다.