Oracle을 이용하면서 자주 사용하는 기능 중의 하나인 TO_CAHR을 이용해서 원하는 형태의 날짜 정보를 보여주는 방법에 대해서 정리해봅니다.

TO_CHAR(날짜, '표현방식'[, 'NLS정보'])

SELECT
       TO_CHAR(SYSDATE, 'YYYY.MM.DD') D_YYYYMMDD,
       TO_CHAR(SYSDATE, 'Y','NLS_DATE_LANGUAGE=KOREAN') D_Y,
       TO_CHAR(SYSDATE, 'YEAR','NLS_DATE_LANGUAGE=KOREAN') D_YEAR,
       TO_CHAR(SYSDATE, 'Year','NLS_DATE_LANGUAGE=KOREAN') D_YEAR_1,
       TO_CHAR(SYSDATE, 'MON') D_MON,
       TO_CHAR(SYSDATE, 'Mon') D_MON_1,
       TO_CHAR(SYSDATE, 'MONTH') D_MONTH,
       TO_CHAR(SYSDATE, 'Month') D_MONTH_1,
       TO_CHAR(SYSDATE, 'D') D_D,
       TO_CHAR(SYSDATE, 'DD') D_DD,
       TO_CHAR(SYSDATE, 'DDD') D_DDD,
       TO_CHAR(SYSDATE, 'DAY') D_DAY,
       TO_CHAR(SYSDATE, 'Day') D_DAY_1,
       TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE=KOREAN') D_DY,
       TO_CHAR(SYSDATE, 'Dy') D_DY_1
  FROM DUAL
 UNION ALL
SELECT
       TO_CHAR(SYSDATE, 'YYYY.MM.DD','NLS_DATE_LANGUAGE=AMERICAN') D_YYYYMMDD,
       TO_CHAR(SYSDATE, 'Y','NLS_DATE_LANGUAGE=AMERICAN') D_Y,
       TO_CHAR(SYSDATE, 'YEAR','NLS_DATE_LANGUAGE=AMERICAN') D_YEAR,
       TO_CHAR(SYSDATE, 'Year','NLS_DATE_LANGUAGE=AMERICAN') D_YEAR_1,
       TO_CHAR(SYSDATE, 'MON','NLS_DATE_LANGUAGE=AMERICAN') D_MON,
       TO_CHAR(SYSDATE, 'Mon','NLS_DATE_LANGUAGE=AMERICAN') D_MON_1,
       TO_CHAR(SYSDATE, 'MONTH','NLS_DATE_LANGUAGE=AMERICAN') D_MONTH,
       TO_CHAR(SYSDATE, 'Month','NLS_DATE_LANGUAGE=AMERICAN') D_MONTH_1,
       TO_CHAR(SYSDATE, 'D','NLS_DATE_LANGUAGE=AMERICAN') D_D,
       TO_CHAR(SYSDATE, 'DD','NLS_DATE_LANGUAGE=AMERICAN') D_DD,
       TO_CHAR(SYSDATE, 'DDD','NLS_DATE_LANGUAGE=AMERICAN') D_DDD,
       TO_CHAR(SYSDATE, 'DAY','NLS_DATE_LANGUAGE=AMERICAN') D_DAY,
       TO_CHAR(SYSDATE, 'Day','NLS_DATE_LANGUAGE=AMERICAN') D_DAY_1,
       TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE=AMERICAN') ADA,
       TO_CHAR(SYSDATE, 'Dy','NLS_DATE_LANGUAGE=AMERICAN') ADA
  FROM DUAL;

 실행해보시면 재미난 결과가 나옵니다.
NLS_DATE_LANGUAGE를 AMERICAN으로 해주면 대소문자를 가려서 나오네요.
아래가 결과값입니다.

1 : 2009.06.10    9    TWO THOUSAND NINE    Two Thousand Nine    6월     6월     6월     6월     4    10    161    수요일    수요일    수    수
2: 2009.06.10    9    TWO THOUSAND NINE    Two Thousand Nine    JUN    Jun    JUNE         June         4    10    161    WEDNESDAY    Wednesday    WED    Wed


장례식 치른지 하루만에 영정을 밟고, 분향소를 무너뜨린 경찰.
시민들을 장봉으로 내려친 "사무라이 조" 경찰.
일본 관광객을 "외국인인척한다"고 때려서 한국이 좋아서 해마다 놀러오던 손님을 때린 경찰.
데이트하러온 사람을 잡아가두는 경찰.
아~ 정말 독재 시대로 돌아가는 듯합니다.

검찰과 경찰이 한데 뭉쳐서 정권의 시녀가 되어가는 모습은 보기에 좋지 않습니다.
빨리 정신들 차리셔야 할텐데요.

영화 "터미네이터 2"를 보면 기계인 터미네이터도 인간성을 배워가고, AI에서는 자신의 존재에 의문을 품는 지성을 가지게 되죠.
우리의 경찰들은 왜 저럴까요?

 전경들이 이성을 잃고 진압하지 않도록 다독이고, 시민들과 의사소통을 하여 평화롭고 안전한 집회 진행에 신경을 써야할 경찰 공무원들은 전경들이 죄책감을 느끼지 않게 명찰을 떼고 무리속에 익명의 경찰로 만들어 버렸습니다.
그 아이들이 전역을 하게되면 죄없는 시민들을 구타하던 그날을 기억하며 온전한 사람으로서 생활을 할수 있을런지요...



토요일 아침에 정말 슬픈일이 일어났습니다.
노무현 전 대통령께서 서거하셨습니다.

삼가 고인의 명복을 빕니다.
우리는 남북 화합에 힘썼고, 서민에게 가장 가까웠던 지도자 한분을 잃었습니다.
현 정권의 독주속에 이제는 어디에서 위로를 받아야 할까요.
힘들었던 고인의 삶에... 그리고 그 죽음에...
가슴이 아픕니다.

  할말이 없습니다.
남들은 해먹을 만큼 해먹고도얼굴에 철판 깔고 살아가며, 권력을 잡고 사는데, 왜...
그냥 슬플 따름입니다.

서울 시내에 시민들이 분향소를 세웠는데, 경찰이 버스로 둘러싸고있다고 합니다.
어청수 전 청장때부터 가로막는것 하나는 열심히 하던 경찰이 이번에도 부지런히 휴일임에도 불구하고...
개념없는 경찰 수뇌부때문에 전경들, 우리 동생들... 너희들이 고생이 많다.
평생을 죄없는 시민들을 폭력으로 진압했던 그 날의 기억을 짊어지고 살아야할 너희들이 아마도 최대의 피해자가 아닐까...
 이곳저곳 돌아다니다가 알게된 링크들입니다.

AIX 5L에 Oracle 설치 문서 : http://download.oracle.com/docs/cd/B19306_01/install.102/b19075/toc.htm

일본어판 Oracle 10g 문서를 네이버 번역기로 번역한 문서 링크 : http://j2k.naver.com/j2k_frame.php/korean/otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/index.htm

Oracle RAC관련 Oracle Magazine 문서 : Oracle RAC, 메인스트림 제품으로 업그레이드

Oracle wait event 모니터링 : http://www.oracle.com/technology/global/kr/pub/columns/dbtuning02.html

OTN Blogs & Opinion, 칼럼 : http://www.oracle.com/technology/global/kr/community/opinion/index.html
 정말 오랫만에 Fedora project 웹 사이트에 가봤더니 11버전 출시가 얼마남지 않았네요. 요즘엔 CentOS와 Ubuntu쪽에만 관심을 쏟다보니 페도라쪽엔 좀 소흘했던것 같습니다.



상세한 일정이 궁금하시면 Release/11/Schedule 페이지로 가보시면 됩니다.
집에다가 설치해볼 배포판 후보에 한번 올려볼까합니다.
 OracleBase라는 웹 사이트에 올라와있는 Oracle 9i Streams 구현 관련 문서입니다.
요즘 10g와 9i 사이에 Oracle Streams로 Data 공유하는 기능을 구현하는 중이라서 이곳 저곳 뒤지고 있는 중입니다.

원문 : ORACLE-BASE - Oracle9i Streams

 영문으로 되어있다는 점만 빼면 좋습니다. ^^;
9i랑 10g랑은 서로 좀 틀려서 그런지 설정하는게 만만치 않군요.
 원격지에 있는 리눅스 서버에서 GUI를 써야할 일이 있을 경우에는 보통 넷사랑의 X Manager를 사용하곤하죠. 하지만 상용이라는 점과... 서버상의 설정을 해줘야 한다는 문제점이 있더군요.
그래서 구글님께 여쭤봤더니 Xming이란걸 보여주더군요. 간단하게 화면을 띄워주는게 맘에 들더군요.


요렇게 바로 화면을 보여주네요.

프로젝트 홈페이지 : http://sourceforge.net/projects/xming

 접속한 계정의 .bash_profile 내용이 적용이 안 되있던데... 이건 뭐가 문제인지 좀더 알아봐야될것 같은데요. 그래도 일단은 오라클이 잘 깔린것 같네요. 흠... DB 만들고 기동시키는것 까지 잘 되어야 할텐데요...
이번에 한번 해보고 안 되면 "조용한 설치 모드"로 한번 설치해볼까합니다. 아마 이런 이름이었던것 같습니다. GUI없이 설치하는거라던데 한번 해봐야죠뭐...
 [Power*Architect Data Modeling & Profiling Tool]라는 툴을 아십니까? 흔히들 알고 있는 ERWin과 비슷한 모델링 툴이죠. 큐브리드 홈페이지에 Power*Architect에서 큐브리드를 사용하는 법이 소개된 글이 있어서 링크를 겁니다.

 원문보러가기 : Power*Architect 에서 CUBRID 사용하기

.소개: 본 문서는 보다 편리하게 CUBRID를 사용할 수 있도록 사용자 중심의 편의성 및 기능을 제공하기 위한 데이터 모델링 도구인Power*ArchitectJDBC를 이용하여 연결하는 방법을 소개합니다.

- 예전에 한번 사용해보려다가 모델링과 모델링 툴에 대한 이해 부족과 영문 메뉴얼에 좌절해서 접었던 적이 있었는데, 이렇게 문서도 올라오고 하니... 다시한번 사용해볼까 합니다. ^^;
 OTN 홈페이지에 [고성능 Oracle JDBC 프로그래밍]이라는 문서가 올라왔네요.
원문보러가기 : 고성능 Oracle JDBC 프로그래밍

고성능 Oracle JDBC 프로그래밍

연결 및 명령문 풀링 기능을 이용하여 Oracle 기반의 JDBC 프로그램 성능을 개선하는 방법을 학습합니다.

By Yuli Vasiliev

2009년 4월 게시

연결 풀링 및 명령문 풀링과 같은 풀링 기능을 사용하면 데이터베이스 집약적인 애플리케이션의 성능을 크게 개선할 수 있습니다. 풀링 기능을 사용하지 않을 경우, 처음부터 객체를 새로 만들어야 하므로 시간과 리소스가 많이 소모되지만 풀링을 사용하면 객체를 다시 사용할 수 있기 때문입니다.

애플리케이션에서 사용한 물리적 데이터베이스 연결을 나타내는 데이터베이스 연결 객체를 다시 사용할 경우, 성능을 크게 개선시킬 수 있습니다. 단, 해당 애플리케이션은 동일한 매개 변수를 사용하여 연결을 수시로 재설정하면서 데이터베이스와 끊임없이 상호 작용해야 합니다. 반면, 애플리케이션이 기본 데이터베이스에 연결하는 경우가 거의 없다면 연결 풀을 사용하는 이점이 별로 없을 것입니다. 그러나 실제로는 허용되는 최대/최소 연결 수에 대한 한도 설정 같은 풀 설정이 특정 애플리케이션에 맞게 최적화되어 있다면 많은 데이터베이스 집약적인 애플리케이션이 연결 풀을 사용함으로써 이점을 누릴 수 있습니다.

연결 풀처럼 명령문 풀도 애플리케이션 성능을 개선할 수 있는 방법을 제공합니다. 프로그램을 실행하는 중에 여러 번 실행되는 명령문을 풀링함으로써 추가적인 성능 개선을 얻을 수 있습니다. 그러나 명령문 풀링이 성능 문제를 해결할 수 있는 특효약은 아니라는 점을 기억하십시오. 만약 프로그램에서 명령문이 실행되는 횟수를 구분하지 않고 모든 단일 명령문을 캐시 한다면 성능 개선을 이루지 못할 수 있습니다. 프로그램 실행 중에 한 번만 실행되는 명령문을 캐시할 경우, 해당 명령문을 캐시에 넣고 보관하는 작업과 관련된 오버헤드로 인해 실제로는 성능이 저하될 수 있습니다.

이 문서에서는 Oracle JDBC 씬 드라이버를 통해 Oracle Database와 상호 작용하는 데이터 집약적인 JDBC(Java DataBase Connectivity) 프로그램의 성능을 개선하기 위해 연결 및 명령문의 풀링을 이용하는 방법을 설명합니다. 특히 JDBC 연결을 캐시하기 위해 모든 기능을 갖춘 연결 풀 구현을 제공하는 JDBC용 Oracle Universal Connection Pool(UCP)을 살펴보겠습니다. 마지막으로 Oracle의 JDBC 드라이버뿐 아니라 명령문 인터페이스에 추가되고 JDK(Java Development Kit) 1.6 이상 버전을 지원하는 Oracle JDBC 드라이버에서 사용할 수 있는 새로운 JDBC 4.0 메소드에 관련된 기능을 사용함으로써 명령문 풀링에서 이점을 얻을 수 있는 방법을 설명하겠습니다.


 AIX 서버의 성능 문제가 생겨서 리포트를 작성할 일이 생겨서 nmon을 이용하기로 했습니다. 예전에 제 블로그에 소개했던 nmon 관련 문서를 떠올리곤 TAG목록에서 nmon을 찾아서 문서를 열었죠.
원문보기 : [소개] IBM DeveloperWorks : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

우선 nmon으로 10시간 가량 모니터링을 하기로 하고 아래와 같이 옵션을 줘서 모니터링을 시작했습니다.

-fT : 파일로 저장하도록 한다. 대문자 T는 top process까지 저장하도록 하는 옵션이다. 이 옵션이 필요없으면 -f로 하면 된다.
-s : 스냅샷을 찍는 간격. 초 단위이다. 300은 5분 간격을 의미한다.
-c : 스냅샷을 찍는 횟수. 5분간격으로 132번을 찍으니까... 10시간이 된다.

# nmon -fT -s 300 -c 132

5분 간격으로 10시간동안 스냅샷을 찍도록 했죠. 그리고 최신 버전의 nmon analyser를 다운로드 받았습니다. 현재 3.3버전이 최신이네요. IBM의 영문 웹 사이트에서 다운로드 받을수 있습니다. nmon analyser을 이용하면 보기좋게 그래프까지 만들어 주네요
저장되는 파일이름은 [호스트명_년월일_시분.nmon]의 형식이며, 모니터링을 시작한 시분이 표시된다. 파일 하나에 데이타가 저장된다.(5분마다 하나씩 생성될줄 알았는데... 하나에 통채로 들어가네요. ^^;)



+ Recent posts