2010-07-30 2 views
6

조인을 시각화하는 데 사용하는 트릭이나 도구가 있는지 궁금합니다. 완벽한 쿼리를 작성하고 실행하십시오. 20 분 동안 실행 한 후에는 아마도 데카르트 조인을 만들었을 것입니다.조인을 시각화하는 방법

는 가끔 어려움을 내가 추가 사람들이 함께 조인을 많이 넣어하려고 할 때 그들이 사용하는 다른 기술이있는 경우 다른 문에 가입하고 궁금 할 때 무슨 일이 일어날 시각화있다.

+8

데이터를 알고 조인을 알아야합니다. http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html –

+1

@OMGPonies는 이건 내가 생각해 봤어. –

답변

2

항상 염두에 두십시오. 열을하다

  1. 확인 당신은 그것을 할 필요합니다 테이블의 최소 수를 알아 내기 위해

  2. 시도가 필요합니다.

  3. 최대 열 수를 제공 할 테이블로 FROM 부분을 작성하십시오. 예 : FROM 팀 T

  4. 새 줄에 하나씩 각 조인을 추가하십시오. 각 단계마다 외측, 내측, 좌측, 우측 조닝이 필요한지 확인하십시오.

일반적으로 작동합니다. 유의하시기 바랍니다 구조화 된 쿼리 언어입니다. 항상 쿼리를 논리적 인 라인으로 분리하면 훨씬 쉽습니다.

0

설명 플랜을 실행하십시오.

이들은 항상 일 때 을 수행해야합니다. 이러한 계획을 그래픽 트리로 만들기위한 툴이 많이 있습니다. 일부는 SQL 브라우저 (예 : Oracle SQLDeveloper, SQlServer의 GUI 클라이언트가 호출되는 곳)에 있습니다. 도구가없는 경우, 대부분의 계획 텍스트 출력에는 "깊이"열이 포함되어 있습니다.이 열을 사용하여 선을 들여 쓰기 할 수 있습니다.

은 무엇 당신이보고 싶은 것은 각 행의 비용입니다. (오라클의 경우 오히려 더 많은 비용이 일 때 시간이 덜 걸릴 수 있습니다. 최종 결과 집합의 카디널리티가 많으면 (많은 행이 많은 경우) 중첩 루프 대신 해시 조인을 수행하면 이됩니다.

1

모든 조인은 두 개의 결과 집합을 하나로 결합합니다. 각각은 이전 조인 또는 하위 쿼리의 결과 인 단일 데이터베이스 테이블 또는 임시 결과 집합에서 가져올 수 있습니다.
조인이 처리되는 순서를 항상 확인하고 조인 할 때 함께 조인 할 두 임시 결과 집합의 특성을 알아야합니다. 해당 결과 집합의 각 행이 어떤 논리 엔터티를 나타내며 해당 결과 집합의 어떤 특성이 해당 엔터티를 고유하게 식별하는지 파악합니다. 조인이 항 s 하나의 행을 하나의 행에 조인하려는 경우,이 키 속성은 조인을 구현하기 위해 (조인 조건에서) g 용해야하는 것입니다. 조인이 일종의 데카르트 생성물을 생성하려는 경우 위의 내용을 이해하면 조인 조건 (그 자체가 무엇이든)이 새 조인 된 결과 집합의 카디널리티에 어떻게 영향을 미치는지 이해하는 것이 중요합니다.

외부 조인 방향을 일관되게 사용하십시오. 왼쪽 조인 (왼쪽)에 이미 조인 한 모든 항목에 새 조인 (오른쪽)으로 "조인"하여 각 조인을 "생각"하므로 외부 조인이 필요할 때 항상 왼쪽 조인을 사용하려고합니다. 성명서...

0

나는 내 마음을 통해 생각하고 사용하는 것보다 나은 도구를 찾지 못했습니다.

쿼리가 너무 복잡하여 수행 할 수없는 경우 CTE, 뷰 또는 신중하게 구성된 하위 쿼리를 사용하여 논리적 조각으로 나누어서 각 조각을 쉽게 이해하고 시각화 할 수 있습니다. 전체를 관리 할 수는 없다.

또한 SQL Server Management Studio 2005 이상 버전을 사용하면 실제로 쿼리를 실행하지 않고도 예상 쿼리 실행 계획을 얻을 수 있습니다. 이렇게하면 MS SQL Server를 사용하는 경우 문제가있는 곳에 대한 좋은 아이디어를 얻을 수 있습니다.

관련 문제