게시판을 읽어올때
항상 포함되어야할 공지사항 게시물 때문에 고민입니다.
설마 공지사항이 10건이 넘겠냐 만은 이걸 인덱스 선두로 삼자니, 다른 조건이 좀 걸리고 ...
보통 어떻게 구성하나요?
매 페이지마다 공지사항이 계속 나와야 한다면 notices라는 별도의 테이블을 만들면 어떨까요?
첫페이지에만 나온다면 index에 추가하셔도 무방하리라 생각됩니다.
이용자 이름으로 검색 등이 게시판에 기능으로 있다면 검색결과에 공지사항이 나오나요? 그렇다면 별도 테이블이 좋을거 같습니다만 검색결과에서는 나오지 않아도 된다면 그냥 인덱스에 넣으셔도 될 듯 싶구요.
등록일역순으로 정렬하기, 등록자 이름으로 정렬하기 등의 기능이 있을때 이때 항상 나와야 한다면 별도 테이블로 떼어 내는 게 좋을거 같구요...
등등 현업에서 요구되는 부분을 잘 반영할 수 있는 방법이 좋겠습니다.
우욱님 좋은 말씀 고맙습니다.!
등록일 정렬 , 변경일 정렬이 , 등록순 (이건 또 뭐냐!!) 정렬
이런것들이 있어서 아쥬아쥬우 피곤하네요 ㅜ,.ㅜ
가만히 생각을 해보다 보니 바로 이럴때가 별도의 테이블을 만들어서 관리하기 보다는 WHERE를 이용한 index를 생성하는 게 맞겠구나... 싶은 생각이 들었어요
CREATE NONCLUSTERED INDEX idxName ON tableName ( colName, ... ) WHERE notice = 1;
과 같은 방법이라면 별도의 테이블을 만들고 어쩌고 할 필요가 없겠네요.
또 좋은 의견 주셔서 고맙습니다!
헌데 공지 Flag 가 있어서 공지 Flag 조건에 맞는거 먼저 나오고
공지 아닌거 뒤로 쭉 따라오는 형태라
해당 인덱스가 좀 감이안오네요.-0-
설명이 너무 적었다는걸 느낀것이 :;
TOP 15
where 없거나 있어두 'Y' or 'N' 조건
order 공지여부,등록일자 ,IDX
이런 식입니다!
IDX에만 클러스터드 되어있고요
클러스터를 섵불리 못바꾸는게 또 수정일자에 맞춰 정렬하는것도 있고....
뭔 또 딴 날짜에 맞춰서 정렬하는게 있고.. 해서 4~5가지 되네요 정렬방식이;;
listing을 하려면 제목, 등록일시 등이 들어 갈거 같구요.
상세한 도움글 고맙습니다!
2008R2 버전인데
MS-SQL은 처음이라;; 고민하고 있을뿐이였습니다. 뭘 몰라요...
index 생성시 include 라는걸 처음 봤내요.
보고서 작성하느라 연구할 시간이 ㅜ.ㅜ 엉엉