안녕하세요^^

 

view를 사용중에 문제가 있어 질문 드립니다.

 

데이터가 많아지니 체감상으로도 많이 느려지기에 인덱스를 걸어보려고 합니다.

 

인덱스 사용은 거의 처음인데 view에 인덱스를 걸려고 해보니..

 

뷰 'View'이(가) 스키마 바인딩되지 않았으므로 이 뷰에 인덱스을(를) 만들 수 없습니다.

 

이렇게 출력되더군요.

 

해결법으로 WITH SCHEMABINDING 을 시도했는데..

 

'main_table'이(가) 스키마 바인딩에 적합하지 않으므로 뷰 'view_table'을(를) 스키마 바인딩할 수 없습니다. 이름은 두 부분으로 구성되어야 하며 개체는 자체 참조할 수 없습니다.

 

이렇게 출력됩니다;

 

여기서 막혀 몇시간째 찾아보고 있으나 해결방법을 모르겠네요 ㅠㅠ

 

도움 부탁드립니다.

 

테이블의 구성은 아래와 같습니다.

 

 

main_table
seq
writer
registdate


 

sub_table
seq
mainseq
type
title
content


 

view_table
seq
type (select top 1 from sub)
title (select top 1 from sub)
content (select top 1 from sub)
writer
registdate


테이블은 위처럼 main table 에 sub table을 join 하는 형태로 되어 있습니다.

 

view의 구문은 이렇습니다.

 

CREATE VIEW view_table
AS

SELECT seq, type, title, content, writer, registdate FROM

(SELECT seq,

(SELECT TOP 1 type FROM sub_table WHERE mainseq=main.seq ORDER BY seq DESC) as type,

(SELECT TOP 1 title FROM sub_table WHERE mainseq=main.seq ORDER BY seq DESC) as title,

(SELECT TOP 1 content FROM sub_table WHERE mainseq=main.seq ORDER BY seq DESC) as content,

writer,

registdate

FROM main_table) a