본문 바로가기

SQL44

DB2 컬럼에 코멘트 만들기 COMMENT ON "스키마"."테이블" ( "컬럼1" IS '코멘트1', "컬럼2" IS '코멘트2' ); 참 쉽죠잉? 2015. 5. 14.
DB2 테이블 재구성 SQLSTATE=57016 에러 : SQL0668N Operation not allowed for reason code "7" on table "테이블이름". SQLSTATE=57016 DROP COLUMN을 했는데, 테이블 엑세스가 안되고 에러메시지가 뜬다. 원인은.... 테이블 재구성을 해야한다는 것! 오라클에서도 그런가?? 하여튼 DB2에서는 ALTER TABLE을 한 뒤에 재구성을 해줘야한다. 해결방법 : REORG TABLE 테이블이름 출처 : http://www-01.ibm.com/support/knowledgecenter/?lang=ko 2015. 4. 17.
SQL 튜닝 이야기 _ IN SQL 튜닝 이야기 _ IN 특정 쿼리를 실행하면 1분 이상 걸리는 경우가 생겨서 확인해봤다. 해당 쿼리에서는.... 키값이 아닌 일반 컬럼값으로 조인을 했다. 게다가 그 컬럼은 인덱스도 없었다. 특별히 문제 없다고 생각했었던건 그냥 그렇게 조인을 해도 값은 4초정도 걸렸다. (키값으로 조인을 하니 깜빡!하는 1초만에 나온다.) 뭐가 문제이길래, 쿼리가 15초~60초 걸리는 걸까? IN에서였다. 일반 컬럼값으로 조인하고, 그 컬럼에 대해서 'WHERE 컬럼 IN' 조건이 만들어지면 쿼리의 수행속도가 어마어마하게 늘어나는 것을 확인했다. EXISTS를 사용해도 마찬가지다. 오늘 하루 종일 얻은 교훈은 1. 조인은 키값으로 하자. (어지간하면)2. 키값이 아닌 일반 컬럼값으로 조인을 하면, WHERE IN .. 2015. 4. 8.
DB2 DESC 테이블 컬럼 정보 확인 DB2에서 테이블 컬럼 정보를 확인하는 방법 DESC 테이블이름 하면 나올 줄 알았는데.... 나오지 않는다; DB2는 여전히 내가 싫은가보다... SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME = '테이블이름' 해당 테이블의 컬럼 정보를 자세히 알 수 있다. 다른 방법은 DESCRIBE TABLE "테이블이름" 하면 나온다. 2015. 4. 6.