본문 바로가기

IT 이야기/데이터베이스(DB)

오라클 세션(session) 확인 및 KILL 오라클 세션(session) 확인및 KILL개발을 하다보면 특정 쿼리가 오라클에 리소스를 잡아먹어서 오라클 자체가 느려지는경우가 종종 발생한다.이럴땐 오라클 세션 확인하여 리소스를 잡아먹고 있는 또는 불필요한 쿼리가 돌고 있는지를 확인해서 KILL 죽여 버리면 된다. SELECT a.sid, -- SID a.serial#, -- 시리얼번호 a.status, -- 상태정보 a.process, -- 프로세스정보 a.username, -- 유저 a.osuser, -- 접속자의 OS 사용자 정보 b.sql_text, -- sql c.program -- 접속 프로그램FROM v$session a, v$sqlarea b, v$process cWHERE a.sql_hash_value=b.hash_value AND a.. 더보기
오라클 락(lock) 확인 및 KILL 오라클 락(lock) 확인 및 KILL 개발을 하다 보면 오라클에 락이 걸려 특정 페이지만 에러가 발새하는 경우가 있다 이럴때 오라클에 특정 테이블에 락이 걸려 그러는 경우가 있는데 일러때는 오라클 락을 확인해 봐야 한다. 1. 락걸린 테이블 확인 SELECT DO.OBJECT_NAME, DO.OWNER, DO.OBJECT_TYPE, DO.OWNER, VO.XIDUSN, VO.SESSION_ID, VO.LOCKED_MODEFROM V$LOCKED_OBJECT VO, DBA_OBJECTS DOWHERE VO.OBJECT_ID = DO.OBJECT_ID; 2. 해당 테이블에 LOCK 확인.SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAMEFROM V$SESSION A, V$L.. 더보기
오라클 데이터딕셔너리 성능 뷰(V$SQLAREA) V$SQLAREA는 SQL튜닝 등에 유용하게 이용 될 수 있는 데이터딕셔너리의 성능 뷰 ColumnDatatypeDescriptionSQL_TEXTVARCHAR2(1000)First thousand characters of the SQL text for the current cursorSHARABLE_MEMNUMBERAmount of shared memory used by a cursor. If multiple child cursors exist, then the sum of all shared memory used by all child cursors.PERSISTENT_MEMNUMBERFixed amount of memory used for the lifetime of an open cursor. I.. 더보기
오라클 세션접속 정보(V$SESSION) 오라클 세션접속 정보(V$SESSION) ▪ SADDR: 오라클 메모리의 세션 주소▪ SID: 세션 식별자( 세션 관련 뷰는 SID컬럼과 조인이 가능 )▪ SERIAL#: 세션 시리얼 번호▪ AUDSID: 감사 세션 아이디( AUD$의 SESSIONID 컬럼과 조인 가능)▪ PADDR: 이 세션을 소유한 프로세스의 메모리 주소( V$PROCESS의 ADDR 컬럼과 조인 가능)▪ USER#: 오라클 사용자 식별자( DBA_USERS의 USER_ID 컬럼과 조인 가능)▪ USERNAME: 오라클 사용자 이름▪ COMMAND: 현재 수행되고 있는 명령문의 타입이 기록된다.( AUDIT_ACTIONS의 ACTION 컬럼과 조인 가능)▪ OWNERID: Migratable session을 소유한 사용자의 식별자를.. 더보기
오라클 all_source 오라클 all_source오라클을 개발 하다 보면 권한이나 정책 때문에 프로시져, 함수 등을 확인 할 수가 없는 데가 간혹 있다.꼭 확인해 봐야 하는 프로시져나 함수를 찾을수 없다면 막막한 기분이 ㅜㅜ그럴때 유용한 테이블 all_source 이거 이용 하면 자신에게 필요한 프로시져나 함수의 내용을 확인 할 수 있다.ORACLE에서는 모든 유저가 생성한 PROCEDURE, PACKAGE, LIBRARY, PACKAGE, BODY, TRIGGER, FUNCTION, TYPE 내용을 all_source 에 저장해 놓는다. 일단 예를 보는게 이해 하기 쉽겠지용ex)select * from all_sourcewhere type = 'FUNCTION'and name = 'DATABASE_NAME'-> 이걸 설명 하.. 더보기
오라클 버전 확인 쿼리 오라클 버전 확인 쿼리내가 사용하고 있거나 관리하게 된 오라클 버젼을 모른다면 쿼리를 날려주세요 쿼리 > SELECT * FROM v$version WHERE banner LIKE 'Oracle%'; 결과 > Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 더보기
오라클 함수 정리 5 오라클 함수 NULL 함수 정리오라클에서 지원하는 함수들을 정리해 봤습니다. NULL 관련 함수 입니다. - NVL(input1, input2): input1이 NULL이면 input2를 반환한다.ex)select NVL('' , 'ZZ') as "NVL"from dual;결과)ZZ - NVL2(input1, input2, input3): input1이 NULL이면 input3를, 아니면 input2를 반환한다.ex)select NVL2('1' , 'AA', 'BB') as "NVL2"from dual;결과)AAex)select NVL2('' , 'AA', 'BB') as "NVL2"from dual;결과)BB - LNNVL(조건식): 조선식의 결과가 FALSE이거나 UNKNOWN이면 TRUE를, TRU.. 더보기
오라클 함수 정리 4 오라클 함수 변환함수(명시적 형변환) 정리오라클에서 지원하는 함수들을 정리해 봤습니다. 변환함수(명시적 형변환) 관련 함수 입니다. - TO_CHAR(char or date, format): 숫자나 날짜를 format에 맞는 문자로 변환ex)select TO_CHAR(SYSDATE, 'YYYYMMDD : hhmmss') as "TO_CHAR"from dual;결과)20170303 : 100359 - TO_NUMBER(text) text를 숫자로 변환ex)select TO_NUMBER('20514336') as "TO_NUMBER"from dual;결과)20514336 - TO_DATE(char, format): char를 format에 맞는 날짜로 변환.ex)select TO_DATE('20170303'.. 더보기
오라클 함수 정리 3 오라클 함수 날짜함수 정리오라클에서 지원하는 함수들을 정리해 봤습니다. 날짜 관련 함수 입니다. - SYSDATE: 현재 시스템 일자 반환ex)select SYSDATE from duall결과)17/03/03 - SYSTIMESTAMP: 현재 시스템 타임스탬프 반환ex)select SYSTIMESTAMP from dual결과)17/03/03 10:18:08.468539000 +09:00 - ADD_MONTHS(date, int): date(날짜형변수)에 int 수 만큼 월을 더한 날짜 반환ex)select ADD_MONTHS(SYSDATE, 2 ) as "ADD_MONTHS"from dual결과)17/05/03 - MONTHS_BETWEEN(date1, date2): date1을 기준으로, 두 날짜 사이.. 더보기
오라클 함수 정리 2 오라클 함수 문자함수 정리오라클에서 지원하는 함수들을 정리해 봤습니다. 문자 관련 함수 입니다. - INITCAP(char): char의 첫문자(공백과 숫자를 제외한 알파벳 중 첫문자)만 대문자, 나머지는 소문자로 변환ex)select INITCAP('hello 123 hi 011 abc') AS "INITCAP('hello 123 hi 011 abc')"from dual결과)Hello 123 Hi 011 Abc - LOWER(char): char을 소문자로 변환ex)select LOWER('Hello 123 hI 011 aBc') AS "LOWER('Hello 123 hI 011 aBc')"from dual결과) hello 123 hi 011 abc - UPPER(char): char을 대문자로 변환e.. 더보기