선행테이블에 우선순위가 뭘까요??? 0 4 2,226

by 러드 [2009.08.14 11:48:01]


저 밑에 "쿼리 짤대 조금식 인라인뷰로 해서 짜시나요??" 라는 내용에 글을 보면

테이블건수 10만건 20만건 1000건 이렇게 말하면서 많은 분들이 이야기를 하셨습니다.

저는 요즘 튜닝이라던지 쿼리 실행계획을 계속 보고 있는데도 선행테이블에 대해서 어떤것을 먼저타고 늦게타고에

개념이 잘 안 생기는데 설명좀 부탁드리겠습니다;;;

 ps) 너무 내용없이 적어서 죄송합니다.

그냥 아시는 범위에서 달아주시면 찾아보겠습니다.^^

by 전창환 [2009.08.14 12:59:50]
안녕하세요... 아마도 제가 다신 답글을 보신듯하네요..

혼란을 야기시킨점 죄송하게 생각합니다... 저도 어제 정신이 없다보니... 이상한 방향으로 얘기가 전개가 되어버려서 ;;

선행테이블에 우선순위는 없습니다. 모든 상황에 만족할 수는 없을테니깐요..
그 상황에 따라 올바른 방법으로 풀어나가야 하며 그런 판단을 뒷받침 하기위해서는
원론적인? 아님 이론적인? 부분들을 알고 있어야 한다고 생각해서 드린말이었습니다.

어제 제가 올린 답글의 내용은 크게 두가지로 정리하자면...

1. 조인시 선행되는 테이블의 불필요한 데이터를 줄임으로써 불필요한 조인액세스를 줄일 수 있다.

2. 테이블간의 관계가 1:1이라면 적은 테이블이 선행되는 것이 총액세스량을 줄일 수 있다.

위 상황들은 지극히 일부분일 뿐이며, 항상 그렇다는 것이 아닙니다. 주어진 상황에 따라 항상 다를것입니다. 하지만 위와 같은 경우들이 존재한다는 것이며 왜 그런지 원리가 무엇인지에 대해 얘기를 하다보니 그런 혼란을 드린거 같네요...

죄송합니다. -_-;;

by 러드 [2009.08.14 13:22:13]
ㅋㅋㅋ 아닙니다!! ^^ 제가 잘 몰라서 물어것입니다.

그럼 선행처리라는것이 실행 계획에서 보면

1 0
2 1
3 2
4 1
5 2

이렇게 나왔다고 하면 3 2 5 4 1 입니까?
5 4 3 2 1 입니까??

그것도 아니면 무엇입니까??

그리고 선행이라는것은 여기 둘중에 맛는것이 있다면 먼저 처리되는것을 말하는것입니까??

by 전창환 [2009.08.14 13:28:30]
숫자가 무엇을 의미하는지 잘몰라서 그에대한 답변은 못드리겠구요.

실행계획으로 얘기하면
위에서 아래로 안에서 밖으로가 실행순서지요..?

선행테이블이라는 말은 먼저 드라이빙되는 테이블이라는것을 의미합니다.

by 손님 [2009.08.14 13:38:28]
2번째 숫자가 탭스라치면. 3 선행 5 후행
플랜뜨면 3번째에 인덱스명나오죠..그게 선행 테이블입니다.
같은 댑스라면 위거부터 .. 깊은 댑스부터 위로 치고 올라갑니다.~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입