database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4659 게시물 읽기
No. 4659
인덱스 크기는 어느정도가 좋을까요?
작성자
karerina
작성일
2009-03-04 11:38
조회수
6,894



지금 테이블을 보는데 


name                           rowtotal    reserved        data             index_size      unused         

----                           --------    --------        ----              ----------      ------          

테이블이름                   4453949     979172 KB      433864 KB       494152 KB       51156 KB       


이런 테이블이 있더군요.


인덱스는 4개가 있고 클러스터 인덱스는 결합 인덱스로 무려 12개의 컬럼으로 생성했습니다

넌클러스터 인덱스도 3~4개의 컬럼으로 생성된 결합 인덱스이구요


이럴때 조건을 줘서 인덱스를 탄다고 해도 logical read 가 결과물수의 4~5배를 읽어 오고 있습니다.


데이타보다 큰 인덱스....


인덱스를 다시 생성하는 방법밖에 없나요?


그리고 클러스터인덱스는 그 컬럼값이 insert나 update등의 작업량이 적은것으로 선택하라고 했는데


pk를 회원번호로 잡으면 보통 그 값으로 클러스터인덱스를 생성 합니다.


그런데 회원번호는 삽입이 자주 일어 나는데 과연 이런 경우는 성능에 어떤 영향을 미칠까요?


다른 컬럼으로 잡아주는게 좋을까요?

이 글에 대한 댓글이 총 1건 있습니다.

인덱스가 있다고 해서 무조건 빨라진다는 것은 착각입니다. 

그리고 말씀하신것처럼 여러컬럼을 결합해서 (무려12개나) 하는 경우는 더더욱 바람직하지 않습니다.
오히려 물리적 논리적 페이지를 더많이 읽게되어 성능이 더 낮아질수도 있지요.

실제로 인덱스 도입의 효과는 이 테이블을 사용하는 쿼리나 어플리케이션의 패턴을 잘 검토를 해보아야 합니다. 실제 컬럼중에서 가장 빈번하게 사용되는 컬럼이 어떤건지.. 

이런경우 가장 쉽게 적용할 수 있는것은 테이블상에 아무 의미는 없지만 정수형 유니크 일련번호 identity값을 사용하여 이를 PK로 사용하는 방법을 자주 사용합니다. 

이 방법이 항상 정도는 아닙니다만, 튜닝이후 전체 페이지리드나 물리적 I/O코스등을 평가해보고 
도입하시길 바랍니다. 


참고하시길...

김호범(trueccie)님이 2009-03-04 19:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4662xp_cmdshell 오류
김환범
2009-03-09
6304
4661한개의 테이블에서 하위코드 가져오기.. [1]
조중연
2009-03-05
6870
4660마일리지에 유효기간이 들어갈떄,, [1]
허양민
2009-03-04
6304
4659인덱스 크기는 어느정도가 좋을까요? [1]
karerina
2009-03-04
6894
4658MS-SQL 2000 쿼리 질문 (재귀?) [5]
우세연
2009-03-04
8883
4657날짜형 변환 1시간단위 변경은? [3]
최덕현
2009-03-02
9283
4656도움을 부탁드립니다. [1]
조명희
2009-02-28
6092
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다