(배경: 뷰를 인덱스 태우는게 제일 좋겠지만, inner join 외에 다른 조인으로도 여러 테이블을 조인해야 해서 인덱스 생성되지 않습니다.)
해당 뷰를 다른 테이블과 join혹은 조건걸어서 사용할때, 제일 많이 사용하는 Id를 맨 앞에 놓고 다음 컬럼이 날짜인데요.
주로 조인거는 키가 되는 컬럼들이 not null이면 퍼포먼스가 더 좋아지나요? 키가 없는 뷰에서도요.
뭔가 그런거 같은 느낌이라서 수정했는데.. 실제 그렇다는 글이나 정보 링크좀, 아니면 설명좀 부탁드립니다..
제가 이것 저것 수정해서 해봤을때는 not null로 만들어서 컬럼순서를 첫번째로 하니 빨랐어요.
<아래는 생성한 뷰의 대략 모습>
ProductId varchar(10), not null
yyyymm char(6), not null
원래는 위에서 yyyymm형태의 일자가 varchar, null로 되있었는데, 아래처럼 쿼리 수정해서 char(6)으로 fix하고 not null로 바꿨습니다.
(기존의 SellDate는 smalldatetime)
ProductId
,isnull(convert(char(6),SellDate,112),0) as YyyyMm
그럼 답변 부탁드립니다... 감사합니다..