ANSI SQL사용에 관한 질문
ydc1940 수험생

답변 채택시 : 0코아

답변 1 추천 0 조회 907 2018.03.15


질문.

oracle / ms-sql / mysql / mariadb등에서 SQL을 작성할때 ANSI 문법을 사용하면 안된다?

각각의 DB가 지원하는 문법이 최적화되어 있기에 ANSI보다 성능이 향상된다?


다년간 프로젝트를 하면서 궁금한 점을 질문드립니다.

여러 DBA를 만나 질문도 해보았지만 명확한 답변을 듣기 힘들더군요

또한 검색을 해봐도 어떤 방법이 좋다라는 글은 본적이 없습니다... 검색을 못하는건지.. ㅜ.ㅜ


각각의 DB가 개별적으로 지원하는 SQL문법이 나은지, ANSI문법이 나은지 명확하게 알려주실 수 있는지요?

만약 ANSI문법이 좋다라면 그 이유는?


댓글 (0)
목록 답변등록
ANSI SQL사용에 관한 질문
jhchoi 2018.03.22

Oracle 에서 ANSI-SQL 구문으로 SQL을 작성한 경우,

부득이 힌트를 사용하여 실행계획을 원하는대로 유도할 필요가 있을 때 실행계획이 제어가 안되는 경우가 많은데

그런 경우는 Oracle SQL 구문으로 변경하면 문제 없이 힌트가 적용되는 사례가 종종 있었습니다.

(ANSI-SQL 의 경우 강력한 ORDERED 힌트 조차도 잘 적용되지 않는 경우가 많습니다)


하지만, SQL 문장 자체를 ANSI-SQL 구문으로 작성했다고 해서 그 자체만으로 성능의 차이가 있다없다 얘기하긴 어려울 것 같습니다. 

오히려 Outer Join 같은 구문은 ANSI-SQL 구문이 더 명확하고 Outer Sign (+) 누락과 같은 실수를 방지할 수 있습니다.


댓글 (0)