[제안] 쿼리 디버깅 기능 (서브 쿼리 순차 실행기능)

공통
작성자
jhryu
작성일
2016-08-11 18:01
조회
6910
하나의 쿼리가 수십줄을 넘어가고 내부에 각종 서브쿼리가 포함된 복잡한 구문의
경우 때떄로 디버깅이나 분석시 구문에 포함된 각 서브쿼리들을 실행해야하는
경우가 종종있습니다.

가령, 짧은 예문 select * from A where idx in (select idx from B where time = '20160811') 이 있다고
했을때, 위는 짧아서 큰문제는 없지만 뒤에 서브쿼리의 결과가 어떤지 테스트를 해봐야할때
query box에서는 뒷 구문(괄호)을 블럭을 잡아 ctrl + l을 수행하면 됩니다.

하지만 해당 구문이 길다면 구문을 포메팅을 하더라도 시작과 끝을 잡기가 번거롭고
효율은 떨어집니다.

제목은 순차실행 기능이라고 했지만 한 구문이 포함하고 있는 서브쿼리들을 자동으로
블럭을 잡아 실행할 수 있는 기능을 제안합니다.

방안은 아래와 같습니다.

1. 하나의 큰 쿼리를 전체 블럭을 잡습니다.
2. "가칭 : 서브 쿼리 분석"을 클릭 합니다.
3. 그럼 첫번째로 구분 분석에서 나온 서브쿼리를 블럭을 잡아줍니다.
4. 다음을 누르면 그다음 서브쿼리를 블럭을 잡습니다.

이런식으로 블럭이 잡히면 서브 쿼리를 ctrl+l로 실행을 할 수 있습니다.
옵션에 따라 모두 실행같은것이 있어 한번에 서브 쿼리들을 각각 실행할 수 있어도
좋을것 같습니다.

구문분석이 좀 더 정교하게 될 수 있다면, 블럭 단위가 가장 작은 단위의 서브쿼리부터
연관된 쿼리(조건으로 맞물려있는)들을 bottom -> top방식으로도 블럭을 잡을 수 있을 것 같은데 위의
기능만으로도 충분히 사용하기에 편리할것 같습니다.

전체적으로 쿼리를 디버깅하기 위한 기능으로 보시면 좋을것 같습니다.
전체 0