11

SQL Server 2008 성경을 읽고 있는데 구체화 된 경로 패턴이 hierarchyid보다 훨씬 빠릅니다. 이게 사실인가요? hierarchyid의 성능을 같게 또는 더 좋게 만들려면 어떻게해야합니까?구체화 된 경로 패턴 VS 계층 구조

답변

16

이 장에서는 계층 구조 설계 및 쿼리를위한 세 가지 방법 인 인접 관계 쌍, 구체화 경로 및 계층 적 ID를 설명합니다. 이것들은 같은 문제에 대한 세 가지 해결책입니다. 그렇습니다.이 세 가지 방법을 비교하는 것은 완벽합니다. 진실은 구체화 된 경로가 가장 빠르지 만 인접 쌍은 더 많은 유형의 계층 구조 문제를 해결할 수 있다는 것입니다. HierarchyID는 어색하고 쿼리하기 어렵 기 때문에 MSFT의 권장 사항을 따르는 경우 키가 아닌 상대 위치 만 저장하므로 안정성이 떨어집니다.

+6

Heh ... 나는 HierarchyID 데이터 유형과 그 메소드에 대해 생각하곤했습니다. 하루 만 사용한 후에, 나는 당신이 말한 것에 대해 그것이 어색하고 질의하기 어렵다는 것을 발견하지 못했습니다. Adjacency 목록과 동일한 테이블에서 관리한다면, 나는 그것이 매우 견고하고 대부분의 성능 부담이 아니라는 것을 발견했습니다. "SQL 서버 2008 성경"을 파헤쳐보아야 할 것 같습니다. 또한 HierarchyID와 중첩 된 집합간에 수백만 행의 테스트를 설정하고 있습니다. –

+0

Adjacency Pair 또는 Self Join with CTE Expression은 업계 및 실무 코드 목록을 받아야하는 문제를 해결했습니다. 폴 감사합니다! –

0

중첩 된 집합 또는 중첩 된 집합을 의미합니까? 구체화 된 경로 패턴은 hiearchyid 데이터 유형을 사용할 수 있습니다. 패턴의 속도와 데이터 유형을 비교하는 것은 의미가 없습니다.

+2

예, SQL Server 2008 성경에서 - 구체화 된 경로 패턴과 hierarchyid를 비교합니다. hierarchyid가 구체화 된 경로를 사용하더라도 모든 기능을 완전히 활용하지는 못합니다. 그래서 저자는 그것들을 나란히 비교했고 구체화 된 경로가 hierarchyid보다 훨씬 더 효과적이라고 말했다. 어떻게 될 수 있는지 이해가 안돼! – Luke101