사용자ID, 컨텐츠ID, 컨텐츠당 개요번호, 사용한시간(초)
(사용자ID + 컨텐츠ID + 컨텐츠 개요번호 이렇게는 유일한 값입니다. PK를 잡고 싶었으나 일단 Pass)
대강 이런구조로 된 테이블입니다.
이테이블에서 집계관련 작업이 많이 이뤄지는데요 진도율 같은것을 구하기 위해서 말입니다.
그런데 Sum(사용한시간) 이런거와 관련해서 어떠헌 인덱스를 걸어야 속도가 빨라질까요?
그리고 위 PK를 잡으면 집계하는 데 어떠한 영향이 생길지 궁금합니다.
-- 구글링을 해보니깐 Sum(인덱스처리된 컬럼) 이거 안된다는 거 같은데요 ㅠㅠ
저 위것이 PK이고
조건절에서 컨텐츠ID = @ and UserID =@ And SNO = @ 를 해야 하는데 이럴경우 이 컬럼들을 넌클러스터로 잡아주는 것이
낫잖아요
혹시 PK 걸린 컬럼연결과 넌클러스터컬럼을 같이 사용할 수 있나요?
Comment 1
-
이스트럭(강동운)
2014.04.22 17:20
안녕하세요~!
지금 주신 내용만으로는 판단하기 어렵습니다.
예를들어.. 감기에 걸렸는데 어떤 약이 좋을까요? 와 같다고 생각됩니다.
1. 테이블의 모든 컬럼 정보
2. 컨텐츠ID = @ and UserID =@ And SNO = @ 조건으로 조회했을 때 나올 수 있는 최대 건수
SELECT TOP 10 컨텐츠ID, USERID, SNO, COUNT(*) FROM 테이블명 GROUP BY 컨텐츠ID, USERID, SNO ORDER BY COUNT(*) DESC
3. 해당 테이블의 WHERE 로 조회되는 모든 조건 들..
4. 데이터 건수
등등입니다.
주실 수 있는 모든 정보를 주셔야... 효과적인 답변을 드릴 수 있습니다.
집계가 많이 일어난다면... 중간 집계 테이블을 만들어두는건 어떠신가요? 이런걸 데이터 마트 라고합니다.
감사합니다 ^^