본문 바로가기

Oracle/Tip

SQL 모니터링 스크립트 출처 : http://sulisys.egloos.com/368459 --wait event 보기(값이 없다면 현재 업무시스템에 심각한 문제를 일으키는 쿼리는 없는 것으로 간주해도 무방함 select /*+ ordered / distinct /* 속도를 위해 v$sql을 조인할 경우 중복되는 레코드 제거 */ s.sid SID, s.username, s.program, p.spid "OS-Pid",w.seconds_in_wait as "W_time(Sec)", decode(w.wait_time,0,'Wai-ting', 'Waited') Status, w.ename event, -- p1text || ':' || decode(event,'latch free',p1raw, to_char(p1)) ||','||.. 더보기
Read the alert log with SQL Read the alert log with SQL (1) alert 파일을 재료로 external table 생성하기 [oracle@ora10gr2 ~]$ sqlplus system/oracle SQL> show parameter instance_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ instance_name string orcl SQL> select value from v$parameter where name='background_dump_dest'; VALUE ---------------------------------------------------------.. 더보기
spfile & pfile에 대해서.. ============================================================================= SPfile & Pfile ============================================================================= 파일 내용 서버 파라미터 파일(9i~) 초기화 파라미터 파일(~ 8i) 명칭 spfile pfile 파일 이름 spfile[SID].ora init[SID].ora 구조 Binary Text 형식 Dynamic Static Parameter 수정 Startup Shutdown 설정 방법 alter system set 파라미터 = 값 scope $ORACLE_HOME/dbs/initDB.ora를 vi 편집.. 더보기
vi편집기 backspace 작동되게 하기 가끔 리눅스를 설치하고 나면 vi모드에서 백스페이스가 안먹힐때가 있다. 이럴땐 #> stty erase '^H' (^H는 " ctrl+v backspace " 누르면 생겨요~. 절대로 '^', 'H' 타이핑 하지 마세요. ^^) terminal의 종류에 따라 위에처럼 해도 안되는 경우엔 ctrl+v h 해주면 해결~!! 더보기
날짜조회 --DEFINE BASE_DT = '20090402' --날짜 조회 SELECT :BASE_DT /*!기준일 */ BASE_DT, TO_CHAR(TO_DATE(:BASE_DT,'YYYYMMDD')-1,'YYYYMMDD') /*!전일 */ PR_BASE_DT, SUBSTR(:BASE_DT,1,6) || '01' /*!당월시작일 */ THIS_MONTH_START_DT, SUBSTR(TO_CHAR(ADD_MONTHS(TO_DATE(:BASE_DT,'YYYYMMDD'),-12),'YYYYMMDD'),1,4)||'0101' /*!전년시작일 */ PRE_YEAR_START_DT, SUBSTR(TO_CHAR(ADD_MONTHS(TO_DATE(:BASE_DT,'YYYYMMDD'),-12),'YYYYMMDD'),1,4.. 더보기
리눅스 디렉토리 구조 더보기
sqlplus 접속시 instance_name,status 표시 1. 기존에 sqlplus로 접속을 하게되면 아래와 같이 화면이 뜬다. 2. sqlplus 접속시 해당 DB의 SID와 상태를 알고 싶다면 아래와 같이 해주면 된다. [oracle@localhost ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql 맨 밑부분에 select instance_name,status from v$instance; 를 추가해주고 저장하면 된다. 3. 이제 sqlplus로 접속을 하면 ... 이렇게 INSTANCE_NAME, STATUS 가 표시된다. 더보기
crontab crontab을 이용해 full export를 해보자. 우선 쉘 스크립트를 만들어 test를 해보자. 원하는 backup폴더로 이동후 [oracle@localhost backup]$ pwd 원하는 이름으로 쉘스크립트를 생성하자 [oracle@localhost backup]$ vi exp_full.sh ______________________________________vi exp_full.sh______________________________________________ find . -name "exp_full_*.dmp" -mtime +2 -exec rm {} \; find . -name "exp_full_*.log" -mtime +2 -exec rm {} \; date=`date +%m-%d-%Y.. 더보기
union 과 union all union 과 union all 의 차이점은 멀까... 예전에 거래소에서 일하던 시절에 그차이점은 단순히 결과물이 중복제거 되어서 나오냐 안나오냐의 차이인줄 알았다. 맞는 말이다. 단순히 결과만 놓고보면 차이점은 그거밖에 없는것이다. 그러나 거래소에서 요구하는 결과는 집합적인 부분으로 볼때 두개의 집합을 합하는데 중복된것을 제거하여 데이터를 추출하는 경우는 거의 없다. 또한 옵티마이저가 처리하는 속도에 있어서 union은 전체범위처리를 하고 union all은 부분범위처리를 하기때문에 성능에도 union all이 유리하다는걸 알수 있다. 예를들어보자. 데이터 셋이 아래와 같이 있다고 가정하고 각각 union과 union all 로 해서 결과를 보고 실행계획도 보았다. union 으로 했을경우에는 중복된 .. 더보기
OS 부팅시 oracle 자동 시작 설정 vi /etc/oratab 을 열어... orcl:/oracle/product/102/db_1:N 더보기