2010-02-01 2 views
2

SQL Server Computed Column이 효율적으로 인덱싱 될 수 있도록 "지속성"이 필요합니까?SQL Server Computed Column이 효율적으로 인덱싱 될 수 있도록 "지속성"이 필요합니까?

이름과 하위 열 (계산 된) 열 조합입니다. 그래서 MSDN 기사에 언급 된 정밀도를 다루지 않는다고 생각합니다.

+1

비 지속 계산 열 *을 인덱싱 할 수 없으므로 "예"(또는 *는 전혀 작동하지 않습니다). 그리고 지속 된 계산 된 열은 결정적 계산 된 열이어야합니다 ... 인덱스가 업데이트되어야한다는 것을 고려하여 결국 의미가 있습니다 (따라서 소스 값 [s] 추적). –

답변

3

, 당신은 열을 필요로하지 않습니다 미치 주장했다 것과는 달리가 지속되는가 인덱스가 생성 될 (어떤 MSDN 문서를 명시하는 것은이 인덱스에 포함되도록 고려 될 수 있기 전에 결정되지는, 그 때 표시해야 는 지속 계산 열 인 경우이다.받는로서는

원래의 질문은 인덱스 효율성이 다른 열과 마찬가지로 우수 할 것으로 기대합니다. 효율을 위해 사용하고 있습니까? 나는 확실히 더 많은 공간을 차지할 것으로 기대하지는 않는다. INSERT/UPDATE 중에 약간의 계산 오버 헤드가있을 수 있지만, 열이 지속 된 것으로 표시되었는지 여부는 상관 없습니다.

인덱스를 통해 쿼리 할 때 차이가 없어야합니다. 인덱스 구조 자체가 실제 열, 지속 된 계산 된 열 또는 고정되지 않은 계산 된 열 이건간에 동일하게 구성됩니다.

(잘하면 최종 수정) - 이 계산 된 열을 검색하는 경우 성능이 약간 저하 될 수 있으며 계산 자체가 비용이 많이 듭니다. 네트워크 오버 헤드 또는 기타 I/O 비용. 그러나 소문자로 변환하는 경우, 나는 그것을 알아 차릴 수있을 것으로 기대하지 않습니다.

+0

내 대답을 이미 편집했습니다 ... –

+0

+1. ..... –

+0

메트릭 성능 향상. Name과 LoweredName (계산 된) 열 조합입니다. – jameszhao00

1

호 그러나 계산 된 컬럼에 인덱스를 생성하기 위해 충족해야 특정 조건이 있습니다 : BOL - Creating Indexes on Computed Columns

+0

+1 링크입니다. 자기 자신에 대한 참고 사항 :'varchar (max)'는 색인 생성, 계산 또는 다른 방법으로는 사용할 수 없습니다 : -/ –

관련 문제