2008-10-08 13 views
1

응용 프로그램의 특정 영역에서 데이터베이스의 여러 테이블에있는 데이터가 필요합니다. 응용 프로그램이 있고 응용 프로그램에 많은 특성이 있고 각 특성에는 여러 개의 정의가 있으며 각 정의에는 가치). 응용 프로그램의 모든 테이블에서 데이터가 필요합니다. 레코드를 선택하기위한 뷰 (다소 큰 뷰) 또는 서브 쿼리를 사용해야합니까? 하위 쿼리의 경우 최적화 프로그램이 효율적으로 작업 할 수 있습니까? 캐싱이 하위 쿼리에서 작동하는 경우에도 관심이 있습니다.뷰와 인라인 하위 쿼리 비교 SQL Server 2005/2008

답변

2

뷰는 일반적으로 뷰를 클러스터 된 인덱스를 삭제하여 영구적으로 표시하지 않는 한 하위 쿼리로 확장됩니다.

1

이것은 'It depends'질문입니다. 뷰는 코드를보다 관리하기 쉽게 만들지 만 복잡한 선택 술어는 옵티마이 저를 혼동시킬 수 있습니다.

또 다른 옵션은 레코드 세트를 반환하는 저장 프로 시저입니다. 하위 쿼리를 여러 번 재사용하는 경우 쿼리를 분할하고 임시 테이블에 하위 쿼리를 선택하고 이후 단계에서 해당 파트를 결합하여 마일리지를 얻을 수 있습니다.

문제에 대한 구체적인 설명이 없으면 의미있는 대답을하기가 어렵습니다.