::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-17 21:57:45, Hit : 5437, Vote : 1404
 index file의 갯수와 성능 문제

// 안녕하세요  김영대( http://www.howto.pe.kr ) 입니다

index 파일이란 primary 로 지정하거나 또는 직접 index file을 생성할 경우
key 가 되는 컬럼들에 물리적인 record의 pointer등을 추가한 후 sort하여
저장된 파일입니다
index 파일은 record가 변동(insert,update,delete,alter)시마다 다시 sort가
되야 하므로 CPU 를 많이 사용합니다
그러므로 index가 많으면 많을수록 CPU는 낭비가 됩니다

▶ index 생성시 다음과 같은점에 주의하세요
1.인덱스가 없는 테이블에 데이타를 삽입한 다음 인덱스를 생성하는 것이
  유리 - resort(rebuild)를 한번에 시켜야 rebuld time을 절약합니다
2.데이타가 없는 테이블에 인덱스를 만들면 데이타 삽입시마다 인덱스를
  갱신하기 때문에 성능의 저하를 가져온다 - 1번과 같은 상황
3.Table의 크기가 작으면 Index를 만들지 않는 것이 좋다 - index 생성의
  overhead
4.자주 사용되는 column을 index로 설정하고 갱신 위주의 table은 index가
  적은 것이 유리 - rebuild 횟수를 줄입니다
5.인덱스가 많으면 수정시 부하가 많아진다 - 매번 rebuuld를 해야 하므로...
6.읽기 전용인 경우 인덱스 사용이 유용하지만 갱신 위주의 테이블이라면
  인덱스가 적은 것이 유리 - 5번과 같은 상황
7.DELETE가 자주 일어나는 테이블은 주기적으로 해당 INDEX를 재생성시켜준다

참고로 Oracle과 같은 RDBMS의 경우는 index의 build/rebuild를 병렬화 하는
기능이 있어서 어느정도의 index overhead를 줄입니다
당연히 여러 프로세스에 의해 인덱스가 생성되므로 단일 서버가 인덱스를
생성할때보다 빠르게 인덱스를 생성하겠죠
또한 주기적으로 생성한 index 의 사용률을 검사하여 계속 index를 사용할지의
여부를 판단하는 것이 좋은데 이것도 Oracle과 같은 RDBMS의 경우에만
인뎃스 모니터링 기능이 지원되므로 Paradox와 같은 xBase 계열은
개발자가 직접 해줘야 합니다






731   [COM/OLE] 떠있는 모든 Microsoft Internet Explorer 의 html 불러오기  김영대 2003/03/30 6035 1473
730   [윈도우즈 API] IE의 "즐겨찾기 구성" 화면 띄우기  김영대 2003/03/30 6037 1939
729   [윈도우즈 API] 데스크탑의 현재 커서위치의 타이틀명과 클래스명 구하기  김영대 2003/03/29 4687 1175
728   [윈도우즈 API] 떠있는 모든 Microsoft Internet Explorer 죽이기  김영대 2003/03/29 4928 1373
727   [시스템] 윈도우즈 전체의 마우스/키보드 입력 금지  김영대 2003/03/29 5532 1385
726   [네트웍/인터넷] 인터넷에 접속되어 있는지 검사하기  김영대 2003/03/29 5511 1331
725   [일반/컴포넌트] TMemo 스크롤 다운 시키기  김영대 2003/03/29 4913 1402
724   [윈도우즈 API] 전체 화면(Full Screen) 만들기  김영대 2003/03/29 5321 1360
723   [윈도우즈 API] "시작"->"프로그램" 메뉴에 폴더 추가하기  김영대 2003/03/29 5101 1294
722   [윈도우즈 API] 폼이 Minimized 되었을때 깜박이게 하기  김영대 2003/03/29 6456 1689
721   [일반/컴포넌트] ListBox에서 마우스 이동시 아이템을 힌트로 보여주기  김영대 2003/03/27 4330 1151
720   [시스템] DOS 명령어 실행하고 결과 받아오기  김영대 2003/03/27 5454 1328
719   [윈도우즈 API] 액티브 데스크탑에 웹 컨텐트가 표시중인지 알기  김영대 2003/03/27 4493 1235
718   [윈도우즈 API] 작업표시줄의 시계 감추기/보이기  김영대 2003/03/27 7526 2030
717   [일반/컴포넌트] 커서(Cursor)의 이미지 구하기  김영대 2003/03/27 4763 1323
716   [윈도우즈 API] 스크린 세이버 On/Off  김영대 2003/03/27 4265 1072
715   [윈도우즈 API] 휴지통 비우기  김영대 2003/03/27 5497 1373
714   [일반/컴포넌트] IE Toolbar 에 버튼 올리기  김영대 2003/03/26 12607 1249
713   [일반/컴포넌트] 기본 Popup Memu 띄우지 않기  김영대 2003/03/26 3925 1039
712   [윈도우즈 API] "임시 인터넷 파일" 전부 지우기  김영대 2003/03/26 5474 1292
711   [일반/컴포넌트] 설치된 모든 프로그램 읽어오기  김영대 2003/03/26 5800 1509
710   [데이터베이스] DBGrid 의 현재 커서의 행/열 구하기  김영대 2003/03/26 5453 1305
709   [일반/컴포넌트] INF 파일 설치하기  김영대 2003/03/26 5382 1322
708   [데이터베이스] BDE Alias 없이 Database 동적으로 연결하기  신훈재 2003/03/24 12954 1181
707   [COM/OLE] Win2k, Win Xp - Active X - Dax error : Access violation해결(IE상에서)  신훈재 2003/03/20 14584 1267
706   [데이터베이스] ORA-12571: TNS:packet writer failure  김영대 2003/03/19 9844 1406
705   [데이터베이스] DBGrid 의 모든 Row 를 Select 시키기(SelectAll)  김영대 2003/03/18 4533 1070
  [데이터베이스] index file의 갯수와 성능 문제  김영대 2003/03/17 5437 1404
703   [일반/컴포넌트] ListView에 확장자별 아이콘 넣기  신훈재 2003/03/15 7218 1204
702   [일반/컴포넌트] ScrollBox 에 배경그림 넣기  김영대 2003/03/14 4162 1120
701   [시스템] '응답없음' 프로세서를 감지하는 잼나는 방법  구창민 2003/03/14 10662 1372
700   [윈도우즈 API] 입력을 기다리는 풀스크린 콘솔 윈도우 만들어 보기  구창민 2003/03/14 6715 1182
699   [일반/컴포넌트] 특정 레지스트리 키 의 모든 목록을 한방에! 읽어오기  구창민 2003/03/14 5259 988
698   [일반/컴포넌트] 트레이 아이콘에 풍선 힌트 보여주기  구창민 2003/03/14 7238 1376
697   [윈도우즈 API] 외부 프로그램의 상태표시줄의 Text 가져오기  구창민 2003/03/14 6283 1427
696   [시스템] IP Address 윈도우 폼위에 만들어보기  구창민 2003/03/14 5842 1304
695   [시스템] 특정 DLL 의 함수목록을 구해보자.  구창민 2003/03/14 5936 1243
694   [시스템] 쓰레드 내에서 폼을 생성해보자  구창민 2003/03/14 6011 1236
693   [윈도우즈 API] 외부 프로그램 모달 창처럼 띄워서 종료될때 기다리기(시점 알기)  구창민 2003/03/14 5855 1281
692   [일반/컴포넌트] 컴포넌트에 오픈다이얼로그를 띄우는 속성 만드는 방법  구창민 2003/03/14 4153 1043

[1][2][3][4][5][6] 7 [8][9][10]..[25] [다음 10개]
 

Copyright 1999-2024 Zeroboard / skin by zero