2010년 12월 10일 금요일

유닉스환경에서 trace + tkprof 실행

-- 2010.1.5 수정

1. sql*plus 실행
-- sql 실행할 파일위치가 있는 곳( /usr_app/sql ) 에서 sqlplus 실행. ( 개인적으로 여기가 편함 )
-- sqlplus에서 바로 sql파일을 읽어서 실행하기 편하므로
/usr_app/sql/sqlplus xxx/xxx@xxx

2. sql 파일 생성
-- 현재 접속된 SESSION 의 spid 확인
select p.spid
  from v$process a, v$session b
 where a.addr = b.paddr
    and b.audsid = userenv('SESSIONID');

결과 SPID : 1080

-- 2010.1.5 추가분
- CPU시간, 실행시간등 시간에 관련된 정보를 표시하기 위해 사용된다.
- 지속적인 설정을 위해 패러미터파일(init.ora)에 설정하거나
- 세션에서만 임시로 설정하기 위해
  alter session set timed_statistics=true 로 사용할 수 있다.

ALTER SESSION SET TIMED_STATISTICS  = TRUE;

-- TRACE 시작
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';

-- 2011.1.5 추가
-- 트레이스 파일에 식별자 붙이기 ( 'jjang_' 로 붙는다 )
alter session set tracefile_identifier='jjang';
alter session set sql_trace=true;
set autot traceonly;



-- 실행할 sql 입력
SELECT *
   FROM EMP
 WHERE EMPNO = 000000
     AND DEPTNO = 999;

--TRACE 끄기
ALTER SESSION SET SQL_TRACE = FALSE;

-- SQL TRACE 파일 위치의 파악
-- 기억해 두었다면 실행할 필요가 없겠죠?
SHOW PARAMETER USER_DUMP_DEST;
==> test.sql로 생성
==> 보통 다른데서 파일 만들어놓고 FTP로 업로드 해서 사용하면 됨.

3. TKPROF 실행
tkprof  db명_ora_1080.trc /usr_app/sql/db명_ora_1080.txt
/usr_app/sql/ 폴더아래에 db명_ora_1080.txt 으로 텍스트 파일이 생성됨.

다시 ftp로 받아서 읽거나 vi로 읽으면 끝.

2010년 12월 8일 수요일

로컬 oracle trace + tkprof 사용하기

1. sql*plus 실행

system으로 접속

 

2. scott - dba권한 부여

grant dba to scott with admin option;

 

3. 현재 접속된 SESSION 의 spid 확인

select p.spid

  from v$process a, v$session b

 where a.addr = b.paddr

    and b.audsid = userenv('SESSIONID');

 

결과 SPID : 1080

 

4. TRACE 시작

ALTER SESSION

    SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';

 

5. SQL 실행

SELECT *

   FROM EMP

 WHERE EMPNO = 000000

     AND DEPTNO = 999;

 

6. TRACE 끄기

ALTER SESSION SET SQL_TRACE = FALSE;

 

7. SQL TRACE 파일 위치의 파악
SHOW PARAMETER USER_DUMP_DEST;

 

8. TKPROF 실행

로컬에 설치된 오라클 ( C:ORACLE )

- 디폴트 세팅된 TRC 파일 위치

  C:\ADMIN\DATABASE명\UDUMP\  XXX.TRC

 

9. CMD 실행

tkprof scott/tiger trace=C:\admin\db명\udump\db명_ora_1080.trc sys=no output=db명_ora_1080.txt

db명_ora_1080.txt 으로 텍스트 파일이 생성됨.

 

내용확인.

Cost 구하는 공식 정의

1.

Cost 구하는 공식 정의

cost =  ( Estimated time  /  Single Block I/O time )

       = (Single Block I/O Count ) + ( Multi Block I/O Time / Single Block I/O Time ) + (CPU Time / Single Block I/O Time )

       =  Single Block I/O Count + Ajdusted Multi Block I/O Count + Adjusted CPU Count

 

 

2.

Oracle9i는 System Statistics를  수동으로 수집

                System Statistics를 별도로 수집하지 않는 한 I/O 기반의 Cost 계산 방식을 사용한다.

                따라서 정기적으로 Syste Statistics를 생성해야 한다.

 

Oracle10g는 Noworkload System Statistics를 기본으로 이용하기 때문에 CPU Model 이 사용되며

                  항상 Time 기반의 Cost 계산방식을 사용하게 된다.

 

따라서 DBA가 수동으로 수집해야 할 System Statistics는 10g와 다르게 Workload System Statistics라 불린다.

 

3.

Oracle 9i 이전까지는 I/O 기반의 Cost Model에서는 Time을 고려하지 않으며 CPU의 성능도 고려하지 않는다.

오로지 I/O의 수행횟수 ( Count )만을 고려한다.

 

I/O 기반의 Cost 계산

Cost = Single Block I/O Count + Multi Block I/O Count

 

2010년 9월 29일 수요일

window7 64비트 + oracle10g 설치

윈도우7에 오라클 10g 를 설치

 

1)..\database\install\oarparam.ini 을 편집기로 열어서...끝에 6.1을 추가한다.
#You can customise error message shown for failure,~

CERTIFIED_VERSION_FAILURE_MESSAGE
Windows=5.0,5.1,5.2,6.0,6.1  
<= 6.1 추가

 

 

2)..\database\stage\prereq\db\refhost.xml 을 열어서 편집기로 열어 아래 내용 추가.
 <OPERATING_SYSTEM>
      <VERSION VALUE="6.1"/>
 </OPERATING_SYSTEM>

 

3>..\database\stage\prereq\db_prereqs\db\refhost.xml 을 열어서 아래 내용 추가.
  <OPERATING_SYSTEM>
      <VERSION VALUE="6.1"/>
  </OPERATING_SYSTEM>

2010년 8월 31일 화요일

동시접속 pk 중복 오류 방지방안

하나의 테이블에 여러 트랜잭션에서 일련번호 성 pk 데이타를 입력할 때 중복 오류가 발생하는 현상을 방지할 수 있는 방안입니다.

1. SEQUENCE 오브젝트를 이용한다.

이를 사용하면 일련번호 관련해서 중복오류를 없앨 수 있는 완벽한 방안입니다.

그러나 모델링이나 다른 이슈로 이렇게 처리하지 못하는 경우가 있습니다.

2. 1번에서 문제가 되는 경우가 일련번호가 연도별, 또는 다른 UID별 일련번호 생성과 관련해서일 것이다.

SELECT /*+ INDEX_DESC(A A30_PK) */ nvl(max(일련번호), 0) + 1 as max번호
INTO 일련번호
FROM TABLE_A30 A
WHERE 년도 = 2010

AND ROWNUM = 1;

 

로 MAX값을 구해와야 하는데 ROCK를 걸지 않고 비지니스 로직을 여러곳에서 동시에 실행시에

 

PK중복이 날 수 있다. ( 실제로도 나고 있고 )

 

오라클에서는 이와 같은 문제를 처리하기위해 AUTONOMOUS_TRANSACTION 을 제공한다.

 

CREATE OR REPLACE FUNCTION NUM_VAL (YEAR IN VARCHAR2)
RETURN VARCHAR2
IS
/*********** AUTONOMOUS_TRANSACTION 선언 시작**********/
PRAGMA AUTONOMOUS_TRANSACTION;
/*********** AUTONOMOUS_TRANSACTION 선언 끝**********/

vs_return_val VARCHAR(10);


BEGIN

-- 1. UPDATE --------------
BEGIN
UPDATE TEMP_A
SET SEQ_NO = SEQ_NO + 1
WHERE YEAR = V_YEAR
;
EXCEPTION
WHEN OTHERS THEN
에러처리

END;

-- 2. SELECT --------------
BEGIN
SELECT SEQ_NO
INTO vs_return_val
FROM TEMP_A
WHERE FRM_YEAR = V_YEAR

;
EXCEPTION
WHEN OTHERS THEN
에러처리

END;

COMMIT;
RETURN vs_return_val;

EXCEPTION
WHEN OTHERS THEN
에러처리;
END;

 

 

--SELECT /*+ INDEX_DESC(A A30_PK) */ nvl(max(일련번호), 0) + 1 as max번호
--INTO 일련번호
--FROM TABLE_A30 A
--WHERE 년도 = 2010

--AND ROWNUM = 1;


일련번호 := NUM_VAL('2010');

 

 

잘된다.

 

 

 

 

 

 

2010년 8월 29일 일요일

노트북 무선랜이용 WIFI(와이파이) AP 만들자.

C:\Users\Administrator>netsh wlan set hostednetwork mode=allow "ssid=win7softAp"
 "key=1234567890" keyUsage=persistent
호스트된 네트워크 모드를 허용하도록 설정했습니다.
호스트된 네트워크의 SSID를 변경했습니다.
호스트된 네트워크의 사용자 키 암호를 변경했습니다.


C:\Users\Administrator>


실행파일
C:\Windows\System32\netsh.exe wlan start hostednetwork
종료파일
C:\Windows\System32\netsh.exe wlan stop hostednetwork

 

회사에서 굳이 쓸 필요가 있겠냐만은..그래도 해봅니다,. ^^

2010년 8월 27일 금요일

window7 + erwin 실행시 에러 해결

ERWin에서 파일 오픈 시 다음과 같은 오류가 발생하는 경우 해결 방법 입니다.

[오류메시지]
오류 Input file: <파일명>.ER1 with file version: -1 is not readable by Computer Associates ERwin

[해결방법]
사용 중인 OS 가 Vista 혹은 Window 7인 경우, ERwin을읽지 못하여 생기는 문제.
ERwin이 설치되어 있는 폴더에 가서 (기본적으로 C:Program FilesCAAllFusion ERwin Data Modeler에 설치 됩니다.) MMOPN32.exe 파일의 속성으로 갑니다.
호환성 탭으로 이동한 후, 호환성 모드의 '다음에 대해 호환성 모드로 이 프로그램 실행'을 체크하시고 window XP를 선택하면 됩니다.
 
원본 :

중고폰 안드로이드폰으로 바꾸기

재미난 글이 올라와서 이렇게 포워딩 해봅니다.

잠자고, 버려질 위기에 처한 윈도우 폰으로 사용되었던 폰에 '안드로이드 OS'를 설치한 뒤, 안

드로이드 폰으로 사용하는 Tip 입니다.


먼저 가지고 계신 폰들의 기종을 정확하게, 확인하신 후, 자신의 기종에 맞는 '안드로이드 OS'

를 다운로드 받습니다.


Touch Pro (Fuze, RAPH, RAPH800, RAPH500)
Touch Diamond (DIAMOND, DIAM500)
Touch HD (BLACKSTONE)
GSM Touch Pro2 (TILT2,RHODIUM, RHOD400, RHOD500)
GSM Touch Diamond2 (TOPAZ)

XDAndroid : http://xdandroid.com/wiki/Main_Page

Samsung i900 (GSM, supported worldwide)
Samsung i910 (CDMA, used by Verizon in the US)
Samsung i780 (Mirage)
Samsung i907 (AT&T Epix)

Andromnia : http://andromnia.net/

HTC Artemis
HTC Elf, HTC Elfin
HTC Excalibur, T-Mobile Dash
HTC Gene, HTC P3400
HTC Herald, T-Mobile Wing
HTC Opal, HTC Touch Viva
HTC Pharos
HTC Prophet
HTC Startrek
HTC Wizard
Asus P320, Galaxi Mini

Wing Linux : http://sourceforge.net/apps/trac/wing-linux/wiki
상기 전화기 모델은, 이통사에따라 다른 이름을 붙여진것도 있습니다.

핸드폰 기종에 맞는 '안드로이드 OS' 를 다운로드 걸어놓고, 다운로드 받는 동안 설치 준빌 합니다.

먼저, Micro SD 카드 1GB 짜리를 준비합니다.


Micro SD 카드를 읽을 수 있는 PC 에 넣고, 반드시 'FAT 32' 로 포멧을 합니다.


다운로드가 끝나면, 7-Zip 을 이용하여, 압축을 풀어 줍니다.



압축을 푼 후, 파일 폴더의 이름은 반드시 'andboot' 이라는 폴더로 바꿔야하며, 'andboot' 폴더안을 들어가면, 'startup config' 또는, 'startup' 이라는 폴더를 만날 수 있습니다.


각 폴더별로, 'startup.txt' 파일이 하나씩 들어 있습니다.
자신이 사용할 정확한 폰 기종을 확인한 다음, 자신의 폰 기종의 폴더를 카피 한 다음, 'andboot' 폴더에 붙여넣기를 합니다. (startup config 에서 카피 -> andboot 폴더에 붙여넣기)

이제 PC 속의 'andboot' 폴더를 조금전 포멧한 Micro SD 카드로 복사 합니다.
Micro SD 카드에 복사를 하셨으면, PC 에서 빼내어, 사용할 핸드폰에 넣은 후, 핸드폰을
부팅합니다.




부팅 후 핸드폰 File Brower 를 이용하여, Micro SD 카드를 읽은 뒤, 조금전 만든 'andboot' 폴더를 열어서, 'heart.exe' 파일을 실행 시킵니다.


자신의 기종과 호환성이 맞게 되어있다면, 'Run' 버튼을 누르면, 자동 부팅 후 원하던, 'Android' 로 부팅을 하게 됩니다.


생각 이상으로 시간이 많이 걸리는 작업이니, 인내심을 기른다 생각하시고 기다려야겠죠.

기나긴 인내의 시간이 지나면, 드디어 안드로이드로 부팅이 완료 되었습니다.
제작자의 이야기를 빌리자면, '데이터 플랜' 등의 가입없이, 그냥 'wifi' 를 이용하면, Mail 등의 셋팅을 할 수 있다고 합니다. 'wifi' 를 적극 이용합시다.



부팅이 완료 된 후에도, 폰과 안드로이드 OS 가 완벽히 Sync 하는데, 10 분 정도의 시간이 더 걸린다고하니, 조금만 더 인내해 봅시다.


다시 윈도우 폰으로 사용하고자 하시는 분들은, SD Card 를 읽지 마시고, 그냥 다시 리붓하시면, 됩니다. 다시 안드로이드를 사용하고자 할 때에는 SD Card 를 넣고, 다시 'heart.exe' 를 실행하시면 됩니다.


모든 Sync 가 끝이나고 나면, 짜잔........어딘가 구석에 있던, 구형 윈도우 폰이, 신형(?) 안드로이드 폰으로 재탄생 하게 되었습니다. 'wifi' 를 이용하여, 인터넷과, 앱 들을 마음껏 이용해 봅시다.


* 주의사항 *

안드로이드 OS 는 기본적으로, 터치 스크린을 사용하는 폰에 최적화 된 OS 입니다.

아이폰 3 G 에서, 아이폰 IOS 4 업데이트를 하여도, IOS 4의 모든 기능을 사용할 수 없듯이, 하드웨어에

서 제공
하지 않는 기능들은 마찬가지로 사용할 수 없습니다.

그리고, 안드로이드 특성상 몇 가지의 다른 버전이 존재하며, 하드웨어도 회사마다, 기기마다 조금씩 다

른 특징을 가지고 있습니다.

자신이 사용할 윈도우 폰에 완벽히 최적화 시키기 위해선, 다른 버전의 안드로이드를 받아서 몇 번의 시

행착오를 겪으셔야 할 것으로 짐작이 됩니다.

아무튼, 버려질 윈도우용 폰에서 wifi 를 이용하여, 안드로이드를 사용할 수 있으니, 한번쯤은 도전해 보

세요.

출처 : http://kinlife.tistory.com/entry/%EC%95%88%EC%93%B0%EB%8A%94-%EC%A4%91%EA%B3%A0%ED%8F%B0%EC%9D%84-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%8F%B0%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%A4%EC%96%B4-%EB%B3%B4%EC%9E%90

 

 

무단으로 가져와서리..쩝..으흐흐흐 그래도 넘 좋은 포스팅이군요.