여러 테이블을 사용하는 복잡한 쿼리의 경우 더 나은 방법입니까? 공통 테이블 식 또는 하위 쿼리?Amazon Redshift : 복잡한 쿼리에 대한 CTE 또는 하위 쿼리?
답변
하위 쿼리는 Common 테이블 식을 사용하는 것보다 훨씬 낫습니다. 쿼리 분석기는 공통 테이블 식 대신 여러 하위 쿼리를 사용할 때 더 잘 수행됩니다.
이 대답에 동의하지 않습니다. 나는 새로운 Redshift 사용자이지만 CTE가있는 두 개의 매우 간단한 쿼리와 하위 쿼리가있는 두 개의 쿼리를 작성했습니다. 내가 양쪽 모두를 위해 설명 계획을 점검했을 때 정확히 똑같이 나왔다! 다른 DBS가 있지만 Redshift에서 약간의 차이가있을 수 있지만 컴파일러에서 두 가지 방법으로 평가 한 것처럼 보입니다. 코드를 작성하는 것은 개인적인 선택입니다. –
그러나 상관 관계가있는 하위 쿼리를 사용하는 것보다 외부 조인을 다시 작성하는 것이 훨씬 낫습니다. Redshift에 인덱스가 없으므로 각 데이터 행에 대해 하위 쿼리를 강제 실행하면 매우 많은 O (n) 연산이 발생합니다.
단순 하위 쿼리는 외부 쿼리의 값을 사용하지 않고 한 번만 계산됩니다! 그래서, 그것은 O (n2) 작업으로 끝나지 않을 것입니다. – untitled
당신과 완전히 동의합니다 : 간단한 하위 쿼리. 작성자는 한 가지 방법이나 다른 방법을 지정하지 않았습니다 (CTE와의 비교로 간단한 하위 쿼리가 암시되는 것은 맞지만). _ 관련 하위 쿼리의 엄청난 부정적인 영향을 감안할 때이 문제를 부각시키는 것이 현명하다고 생각했습니다. – DogBoneBlues
나는 임시 테이블을 말할 것입니다. 임시 테이블에서는 DIST KEY를 정의하고 성능을 제어 할 수 있습니다. CTE가 그 우물을 수행하지 않을 수도 있습니다.
- 1. 최적화에 대한 CTE 또는 하위 쿼리
- 2. NHibernate에 multicriteria CTE 하위 쿼리
- 3. 공통 테이블 식 (CTE) 또는 하위 쿼리
- 4. PHP를 통한 Amazon Redshift 데이터베이스 쿼리
- 5. 쿼리에 CTE 포함
- 6. Amazon Redshift to Glacier
- 7. Amazon Redshift 용 REST API
- 8. amazon redshift, sqlworkbench/j
- 9. 복사 명령 Amazon Redshift
- 10. Foxpro 복잡한 하위 쿼리
- 11. 최대 절전 모드 : 쿼리에 대한 하위 쿼리
- 12. CTE 쿼리 최적화
- 13. 복잡한 쿼리에 대한 인덱스 선택
- 14. Amazon Redshift : Acces Denied RestoreClusterSnapshotRequest
- 15. 복잡한 SQL 쿼리에 대한 도움말
- 16. 복잡한 가입 쿼리에 대한 도움말
- 17. 복잡한 mysql 쿼리에 대한 도움말
- 18. 주어진 부모에 대한 하위 열의 CTE - SUM을 사용한 재귀 쿼리
- 19. Amazon Redshift Security Group 문제
- 20. amazon Redshift Incremental 파이프 라인
- 21. 복잡한 하위 쿼리가있는 SQL 쿼리
- 22. SQL의 쿼리에 하위 쿼리 추가
- 23. 복잡한 SQL 쿼리에 가입
- 24. Amazon Redshift : 여러 결과 집합을 반환 할 수 있습니까?
- 25. 다소 복잡한 LINQ 쿼리에 대한 도움이 필요합니다.
- 26. LINQ to SQL 쿼리에 대한 복잡한 SQL Server 쿼리 C#
- 27. 선택 쿼리에 하위 쿼리 삽입
- 28. 여러 부모와의 상위 하위 관계에 대한 CTE
- 29. 하위 쿼리의 CTE
- 30. 왼쪽 복잡한 SQL 쿼리에
IIRC 레드 쉬프트는 8.4 포스트그레스 이전 버전을 기반으로하므로 * CTE가 없습니다. 선택이 쉬워졌습니다. – wildplasser
Redshift는 CTE (절 포함)를 지원합니다. Redshift 설명서 [here] (http://docs.aws.amazon.com/redshift/latest/dg/r_WITH_clause.html)를 참조하십시오. – DogBoneBlues