본문 바로가기

전체 글

오라클 DB에 들어있는 무료 모니터링툴 - oratop (콘솔에서 바로 실행가능한) Oracle DB를 설치하면 무료로 사용할 수 있는 DB모니터링툴이 있습니다. 리눅스OS를 설치하면 top 이라는 툴이 기본적으로 내장되어 있어서 프로세스를 모니터링 할 수 있듯이, 오라클DB가 설치되어 있으면, oratop 이라는 툴이 기본적으로 내장되어 있어서 Oracle 프로세스, SQL을 모니터링 할 수 있습니다. 이게 예전에는 별도로 다운로드 받아서 사용했던 것인데, 12c 부터인가 디폴트로 함께 제공되어 그냥 실행하기만 하면 바로 사용할 수 있습니다. oratop 을 실행시키면 위와 같은 모니터링 화면을 볼 수 있습니다. 맨위에는 DB Uptime, SGA크기 등이 나오고, 두번째는 CPU, IOPS, PGA 사용량 등을 확인할 수 있고, 세번째 섹션에서는 Wait Event 통계정보가 나오고.. 더보기
말하는 재미가 있는 영어표현 (get into, make out) - 넷플릭스 F is For Family 중에서 넷플릭스 애니메이션 시리즈 "F is For Family" 중에서 재밌는 표현이 나와서 정리해봤습니다. 남자 주인공이 마누라와 대화하는 장면중 하나입니다. 자식이 3명이나 되는데, 마누라가 열받아서 다 팽개치고 집을 나가버리려고 하니까 나가지 말라고 말리려고 하면서 하는 얘기입니다. You knew what you were getting into when you let me get into you. 나하고 섹스를 허락할때 네가 어떤 상황에 처하게 될지 너도 알았잖아. -,.- get into 는 두가지 뜻이 있습니다. 1) 섹스하다, = make out 2) 어떤 상황에 처하다, 들어가다, 도착하다, 입다, ... 뒤에 사람이 나오면 "섹스하는" 것이 되고, 뒤에 사물이 나오면 ... 드럽게 많은 뜻이 .. 더보기
오라클 Undocumented Hint (materialize, inline 힌트) - With 구문 Oracle With 구문에서 가끔 /*+ materialize */ 라는 힌트를 사용한 SQL을 볼 때가 있습니다. 이건 과거 10g 이하 버전에서 With 절이 반복적으로 호출될 때, 이걸 매번 실행하지 않고 한번만 실행하도록 Global Temporary Table 을 만들어버리도록 명령하는 힌트입니다. 즉, 아래와 같은 SQL 문에서 With 절로 만들어진 dept_count 부분이 메인 SQL문에서 2번 호출되었습니다. 호출될 때마다 With 구문의 SQL을 실행할 겁니다. 하지만, 처음 한번 실행후 실행결과를 임시테이블로 만들어버리면 2번째 호출되는 것은 그냥 임시테이블에서 결과를 가져오기만 하면 되기 때문에 실행이 빨라질 겁니다. 이런 아이디어에서 /*+ materialize */ 힌트가 나.. 더보기
오라클 SQLPlus 화면에 결과를 뿌리지 않고 수행시간, Plan 만 확인 (set autotrace explain statistics) Oracle SQL*Plus 상에서 SQL을 실행할때 실행결과는 화면에 뿌리지 않고 최종수행시간만 알고싶은 경우가 있습니다. 이때, 쉽게 사용할 수 있는 방법이 autotrace 기능입니다. 원래 autotrace 기능은 자동으로 SQL 실행정보(실행계획, 실행통계)를 출력해주는 기능인데, 이것과 함께 set timing on 을 함께 사용하면 됩니다. 위에서 set timing on 명령어를 써줬기 때문에 최종수행시간(Elapsed Time) 이 나옵니다. 하지만, set autotrace trace stat 명령어를 줬기 때문에 실행결과는 나오지 않습니다. 실제 EMP 테이블을 조회하기는 하지만, 조회결과는 화면에 출력하지 않고, 최종 조회된 건수인 "14 rows selected." 정보만 화면에 .. 더보기
윈도우즈10 단축키 - 가상화면 (별도 프로그램없이 가상 스크린 이용하기) MS Windows 10 에서는 가상화면(Virtual Screen)을 아주 쉽게 이용할 수 있습니다. 보통은 하나의 화면에 여러 프로그램 또는 브라우저들을 어지럽게 띄워놓고 작업하는 것이 보통입니다. 그러다가 문득 마치 화면이 여러개 있는 것처럼 가상의 스크린을 몇개 만들어서 화면을 옮겨다니면서 작업하면 어떨까 하는 생각을 하게됩니다. 또는, 게임을 하다가 갑자기 보스가 나타나면 화면을 순식간에 일하는 화면으로 바꿀수는 없을까 이런 생각도 합니다. 이런식으로 마치 여러개의 화면이 있는 것처럼 가상화면을 만들어주는 프로그램을 과거에는 별도의 프로그램을 설치해서 사용했었는데, 윈도우즈10 에서는 이것을 기본기능으로 구현해 놨습니다. [윈도우즈 로고키] 와 [Ctrl키] 를 누른 상태에서 "D" 키를 누르면.. 더보기
오라클 AWR 에서 Top SQL 추출하는 SQL 스크립트 (dba_hist_sqlstat, dba_hist_sqltext) Oracle DBMS 에서 튜닝 대상 SQL을 뽑기 위한 방법으로 AWR 딕셔너리를 이용할 수 있습니다. AWR 리파지토리(저장소)에는 디폴트로 8일간의 SQL 실행정보가 기록되어 있습니다. 여기에서 실행시간이 오래 걸린 SQL들을 추출할 수 있습니다. 아래 SQL문을 sys 또는 system 유저에서 실행하면, AWR 보존기간(디폴트 8일) 동안 실행된 히스토리를 뒤져서 10초이상 실행된 SQL 내역을 뽑아줍니다. -- AWR에서 10초 이상 실행된 SQL문 추출 set linesize 200 col username for a15 col sqltext for a100 col "elapsed_time(s)" for 999,999,999 col "buffer_get" for 999,999,999,999 s.. 더보기
오라클 대량데이터 Update, Delete 작업 빠르게 하는 방법 (feat CTAS) 대량 데이터를 Update 또는 Delete 작업하는 경우 많은 시간이 소요됩니다. Update/Delete 할때마다 기존(변경전/삭제전) 데이터를 Undo Segment 와 Redo Log 에 Writing 해야 하기 때문입니다. 그래서 Update/Delete 해야할 데이터량이 많은 경우에는 CTAS(Create Table As Select) 구문으로 변경해서 작업하는 것이 훨씬 빠르고 유리합니다. 얼마나 빨라지는지 한번 테스트 해보겠습니다. 먼저, 테스트할 대용량 테이블을 생성합니다. create table TEST1 as select empno, salary, deptno, lpad(big_ename, 3000, big_ename) as big_ename, lpad(big_addr, 3000, b.. 더보기
(표현모음) I don't give a fuck. (hoot, damn, goddamn, shit, flying fuck, what, gnats knacker, two squirts of piss) "신경 1도 안쓴다" 는 표현으로 지난번에 I don't give a rat's ass. 라는 표현을 알아봤었는데, 비슷한 표현이 너무 많아서 쭈~욱 모아 봤습니다. I don't give a fuck. = I don't give a hoot. = I don't give a damn. = I don't give a good goddamn. = I don't give a shit. = I don't give two shits. = I don't give a flying fuck. = I don't give a flying shit. = I don't give a what. = I don't give a rat's ass. = I don't give a rat's butt. = I don't give a g.. 더보기