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
운영게시판
최근게시물
DB2 Q&A 969 게시물 읽기
No. 969
DB2 인덱스 생성에 대해서...
작성자
김재경(dopelife)
작성일
2006-04-11 22:53
조회수
7,403

아..글쓰기 힘들군요..;; 엑티브엑스를 자꾸 거부해서...;;

 

아, 지금 DB2(처음 사용중)의 테이블에 인덱스를 추가하려고하는데요

테이블에 약14000000건이 들어 있습니다.

CREATE INDEX 인덱스명 테이블명(컬럼명) 문법이 확실한지는 지금 잘 모르겠으나

이런식으로 쿼리를날렸는데요 타임아웃으로 롤백이 되어버립니다.

 

다행히 40000000건이 있는 테이블은 인덱스를 따로 생성해 주지 않아도 될듯 싶은데

저 천만건이 있는 테이블에 인덱스를 추가하기가 힘드네요..

 

어떤 다른 좋은 방법이 없는지 고수님들의 조언을 기다리겠습니다

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

인덱스를 생성할 때 발생되는 lock때문입니다.

 

V7이하일때는 해당 테이블에 Z lock이 걸립니다. Z lock이 걸리면 해당 테이블에는 아무런 작업도 할 수 없습니다. 반대로 이 lock을 걸려면 작업 대상 테이블을 사용하고 있는 application이 없어야 합니다. 이 경우 실행중인 application을 db2의 force 명령어를 사용하여 kill한 다음에 다시 시작하면 됩니다.

V8에서는 해당 테이블에 IN lock이 걸립니다. 이 lock은 테이블의 insert,update에 영향을 주지 않습니다.

 

해당 테이블이 사용중인지 알고 싶다면 lock snapshot을 써보세요.

db2 get snapshot for locks on dbname

 

실행중인 application kill 하는 방법

- 먼저 lock snaphsot 의 output에서 해당 테이을을 사용중인 application의 handle 번호를 알아냅니다.

응용프로그램 핸들                          = 1245 

- db2 "force application(1245 )"

 

 

도님이 2006-04-12 09:54에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
972628번 글에 이어서 인덱스에 대해....ㅡ.ㅜ [1]
김재경
2006-04-12
4974
971DB2에도 오라클의 greatest와 같은 함수가 있나요 [1]
미리내
2006-04-12
5341
970[질문]DB2에서 실행계획(explan)을 보고 싶습니다. [1]
이준식
2006-04-12
7308
969DB2 인덱스 생성에 대해서... [1]
김재경
2006-04-11
7403
968in문 관련 질문입니다. [1]
jinjin
2006-04-11
4731
967[질문] with문으로 만드는 테이블과 view테이블의 차이점이 뭔가요? [2]
이준식
2006-04-11
6788
966이것 한번봐주세여 [3]
일이시스
2006-04-10
5142
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다