2010-07-23 4 views
14

테이블에서 데이터를 검색 할 선택 쿼리가 있습니다. 괜찮 으면 좋겠지 만, 3 가지 값을 선택하는 조건이 있으면 결과가 나오지 않습니다. 에러 메시지;보기가 스키마 바운드가 아닙니까?

Query processor ran out of Internal resources

내가 INDEX를 통해 보았다는, 나는 그 선택 문을 사용하여 뷰를 생성 잘 작동하는 것 같다,하지만 인덱스를 만들 수 없습니다. 에러 메시지;

View is not schema bound

답변

28

을보기가보기 끝난 엔티티에 바인딩 스키마 할 필요가 인덱싱 된 뷰를 만들려면. CREATE VIEW

CREATE VIEW MyView 
WITH SCHEMABINDING 
AS 
-- SELECT 

는 스키마 바인딩에 대한 자세한 내용은 this link를 참조하거나 MSDN 페이지 :

예를 들어, 단순히 단순히보기 CREATE/ UPDATE 쿼리에 WITH SCHEMABINDING을 사용하여 지정할 바운드 뷰 스키마를 만들려면 성명서.

그러나 인덱스 된 뷰가 반드시 도움이 될 것이라고 나는 생각하지 않습니다. "쿼리 프로세서에서 내부 리소스가 부족합니다"라는 메시지는 쿼리 프로세서가 쿼리에 대한 실행 계획을 생성하지 못했음을 의미합니다. 매우 복잡한 쿼리에서만 발생합니다.

어쨌든 쿼리의 복잡성을 줄여야합니다.

+0

스키마 바인딩은 두 개의 부분 이름 만 허용합니다. 즉, 데이터베이스 내에서 스키마 바인딩 만 수행 할 수 있습니다. 이는 또한 교차 데이터베이스 뷰에서 인덱싱 된 뷰를 사용하려는 경우에도 수행 할 수 없음을 의미합니다. –

+0

그 제한은 많은 의미가 있습니다. 인덱스는 대략 데이터에 대한 포인터의 로컬 복사본입니다. 대상이 원격 서버 인 경우 로컬 서버는 인덱스가 마지막으로 업데이트 된 시점과 네트워크를 통해 데이터를 가져 오려고 시도한 시점 사이에 변경된 지점을 알 수 없습니다 –

관련 문제