2013-09-28 2 views
3

현재 유지 보수가 주요 관심사 인 프로젝트를 진행 중입니다. 따라서 자연스럽게 리드 디자이너는 불필요한 코드를 반복하고 싶지 않습니다.조회수 내보기 - 모범 사례는 무엇입니까

데이터를 쿼리하는 몇 가지 복잡한보기가 있습니다. 아니요. 다른 복잡한보기를 만들도록 지정되었지만 다른 지침에 따라 검색어를 지정하는 방법이 있습니다. 프로덕션 데이터 복사본에 심각한 속도 문제가 있음을 확인한 후 내 View가 다른 View를 호출 한 View를 호출하는 것을 보았습니다. (예 : View A references View B는 View D를 참조하는 View C를 참조 - 모든 경우에 동일한 뷰가 모든 데이터베이스에있는 테이블에 대한 쿼리 임)

에 대해 알고있는 동안은 (즉, 실제 관계와 가상 관계는 구분되지 않습니다.) 성능 문제는 기대할 수 있습니까? 다른보기를 참조하지 않는보기를 만들어야합니까?

+3

http://dba.stackexchange.com/questions/5487/is-nested-view-a-good-database-design –

답변

2

보기가 실행되기 전에 확장됩니다. 중첩 된 뷰의 수준에는 성능 저하가 없어야합니다.

성능 손실이있는 경우 중첩 된보기가 필요한 것보다 많은 작업을 수행하고 있기 때문일 수 있습니다. SQL Server는 지금까지만 최적화 할 수 있습니다. 특히 select top 100 percent ...과 같은 쿼리 힌트 또는 강제 정렬 작업은 중첩 쿼리를 느리게 만들 수 있습니다.

가장 읽기 쉽고 유지 보수가 쉬운 대안을 사용하는 것이 좋습니다. 성능 문제가 발생하면 몇 가지보기를 최적화하는 것이 좋습니다.