SQLPLUS에서 실행해 보세요. GUI환경에서는 아래 SQL를 굳이 사용할 일이 없겠죠. ^^ 1.Locked Session 조회 ----------------------- SELECT LOCK_OBJ.OBJECT_ID , DBA_OBJ.OBJECT_NAME , DBA_OBJ.OBJECT_TYPE , LOCK_OBJ.SESSION_ID , DBA_OBJ.OWNER , LOCK_OBJ.XIDUSN , LOCK_OBJ.SESSION_ID , DECODE(LOCKED_MODE, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE', 4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') LOCKED_MODE FROM V$LOCKED_OBJ..
비교적 데이터가 많은 테이블의 row 건수를 구하고자 할때 제가 몇가지 테스트 해본 결과 아래 방법이 가장 빠르더군요. 인덱스를 이용해서 index fast full scan + parallel로 하는 방법입니다. ---------------------------------------------------------------------------- select /*+ index_ffs(a 인덱스명) parallel_index(a 인덱스명) parallel(a 4) */ count(인덱스컬럼명) from 테이블명 a; ---------------------------------------------------------------------------- 환경마다 다르겠지만 회사에서 3억건이 있는 테이블 ..
01. Lock 확인 ------------------------------------------- SELECT A.SESSION_ID SID ,B.SERIAL# SERIAL_NO ,A.OS_USER_NAME ,A.ORACLE_USERNAME ,B.STATUS FROM V$LOCKED_OBJECT A ,V$SESSION B WHERE A.SESSION_ID = B.SID; 02. Lock 걸린 session 죽이기 ------------------------------------------- ALTER SYSTEM KILL SESSION 'SID, SERIAL_ID';
SELECT 절을 이용해서 특정 row의 컬럼들에 대해 lock를 설정할 수 있음. lock은 commit이나 rollback를 만날때까지 유요함. lock row문은 형식은 아래와 같습니다. ------------------------------------------------------ select from 대상테이블 where 조건 for update of nowait; ------------------------------------------------------ for update of 뒤에 컬럼명을 명시하지 않으면 해당 row 전체가 lock으로 설정됩니다. 그리고 11g 부터 좋은 lock row 문에 유용한 옵션이 추가되었는데요 바로 SKIP LOCKED 입니다. 즉 for update ..
회사에서 sqlgate 정품을 사용하고 있는데 예전 버전이라 그런지 특정 테이블의 index 나 컬럼 정보를 쉽게 찾을 수가 없어서 매번 짜증이 나더군요. 단축키는 고사하고 테이블정보 보는 화면에서 다른 테이블 정보를 볼려면 콤보박스로 선택해서 봐야 한다는. . . "콤보 + 검색" 기능으로 했다면 더 편리했을 텐데 말이죠. 아무튼 회사에서 sqlgate 버전업 시켜줄일이 만무하고 다른 불법 S/W는 일체 사용하지 못하니 중이 제머리 깎을 수 밖에요. 필요한 정보를 조회하는 SQL를 만들어 미리 화면에 붙여 놓고 작업하는 것이 더 정신 건강에 좋을 듯 합니다. 내공도 쌓구요. ㅎㅎ ---------- SQL BEGIN -------------------------------------- select a...
SQL 작성시나 튜닝시 테이블에 인덱스는 중요한 팩터입니다. 토드나 오렌지와 같은 GUI툴은 사용하면 손쉽게 테이블 마다 생성된 인덱스를 볼 수 있는데 툴이 없을때 막상 특정 테이블의 인덱스를 찾을려면 귀찮을때가 많죠. 저두 매번 찾기가 귀찮아 이번에 인덱스 구성을 조회하는 SQL를 만들어 보았습니다. 하나의 인덱스에 컬럼을 7개 조합해서 만드는 경우는 많이 없음으로 최대 7개로 구성된 인덱스만 표현하도록 했습니다. ----------- SQL BEGIN ------------------------------------------------- select index_name ,index_type ,decode(constraint_name, null, ' ', 'pk') primary_key ,unique..
Not Null 조건이나 혹은 기타 이유로 인하여 컬럼에 null이 아닌 공백으로 넣는 경우가 왕왕 있죠. 이때 그 컬럼이 null인것과 (공백인것 포함)을 모두 조회하려면 어떻게 할까요? where trim(컬럼) is null 하면 됩니다. 즉 공백외에 값이 없는 컬럼에 trim()으로 하며 null과 같다는 의미죠? 저두 직접 테스트 해보기 전까지 null과 같을지 확실할 수가 없더라구요. 의문이 날때 직접 해보는것이 최고죠.
통계작업에서 종종 ORA-01476 제수가 0 입니다 를 가끔 보게 되는데 나누기에서 분모가 0이어서 발생하는 문제죠. 분모가 0이 안되게 하는게 정답이지만 데이터 정합성과 기타 문제로 인하여 분모가 0이 될 수가 있습니다. 그래서 오류없이 자료를 뽑고, 분모가 0인 데이터는 0으로 표시하기 위해서 아래와 같이 분모 값이 0일 때 NULL로 치환해 주면 됩니다. NULL로 나누면 값은 NULL이 되고, 에러는 발생하지 않습니다. SELECT NVL(분자 / DECODE(분모, 0, NULL, 분모), 0) FROM 테이블; 또는 SELECT NVL(분자 / NULLIF(분모, 0), 0) FROM 테이블;
- Total
- Today
- Yesterday
- node.js
- yugabyteDB
- 로니카 BCS
- 솔리드 쿨론
- 빈센트 반 고흐
- 남설 팔찌
- 별잉 빛나는 밤
- Pixel Pals
- 화분벌레
- 홈 오피스
- 별이 빚나는 밤
- 배당급
- 코라나 19
- JMW 헤어드라이기기
- GKRS
- Life Chair
- 톡토기
- VARIDESK
- 루미큐브 종류
- 르세라핌
- weka
- 증권정보포털
- 고체 향수
- 브리다 정수기
- 파나소닉 비데 DL-EH10KWS
- 매직 트랙패드2
- 오미크론
- 유가바이트디비
- Sybase IQ
- 카카오 에드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |