Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- oralce
- HTML
- Eclipse
- 즐겨찾기 추가
- Adobe pdf reader
- JavaScript
- 갑근세
- Jrun
- .NET
- 인테리어그림
- 에덴미술
- Administrator
- Vista
- samba
- 블로그 수익화
- 소득세
- MSSQL
- JSP
- 블루수국그림
- 블로그 조회수
- 블로그 조회수 늘리기
- Jexcel
- flash
- CVS
- 국민연금
- 블로그 방문자 늘리기
- CSS
- PHP
- MySQL
- IIS
Archives
- Today
- Total
I LOVE EJ
MSSQL - with index를 이용한 인덱스 강제 설정 본문
환경
MSSQL Server 2005 Standar
문제 : 인덱스를 잘못 타서 결과가 늦게 온다.
인덱스를 내가 원하는 것으로 선택이 가능할까?
Database 스키마
클러스트인덱스 : EndDate
논클러스트인덱스 : AccountID
가끔씩 쿼리를 만들어서 날리는데 인덱스를 엉뚱한걸 타거나 테이블을 풀스캔을 할 때가 있다.
이럴땐 똑똑한 SQL이라도 가끔은 멍청해보일때가 있다고 생각된다.
엉뚱한녀석...
총 4천만건의 테이블중에서 서브쿼리로 2천만건을 긁은 후 테이블을 조인을 하는 무식한 방법으로 조인을 해서
저 쿼리 하나로 인해 SQL을 먹통으로 만들어 버린다.
분명 클러스트인덱스가 걸려있는 날짜조건을 줬지만 SQL은 이상하게 많은 레코드를 반환을 해온다.
인덱스를 바꿔보고 싶다.
어떻게?
----------------------------------------------------------
select * Tables with (index=INDEX NAME)
----------------------------------------------------------
위와같이 하면 된다.
인덱스를 클러스터인덱스가 걸려있던 EndDate에서 논클러스트인덱스인 AccountID를 타도록 수정을 변경을 했더니
쿼리는 더욱 쉽게 결과를 반환을 하게 되었다.
결과도 30초가 넘던 것이 0초만에 나온다.
'Data Base > MsSql 2005' 카테고리의 다른 글
DBCC REBUILD_LOG를 사용하여 새로운 로그 파일 생성하기 (0) | 2009.02.09 |
---|---|
데이터베이스 온라인 실패 - RECOVERY_PENDING (0) | 2009.02.09 |
MS_SQL2005 데이터베이스 복원 및 사용자계정 일치 (0) | 2008.09.06 |
MS SQL Server Express(2005)에서 사용자 추가 & 데이터베이스 생성 (0) | 2008.08.27 |
자동증가값 + 1을 01로 표시할때 (0) | 2008.07.28 |