2010년 12월 10일 금요일
유닉스환경에서 trace + tkprof 실행
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이 설치되어 있는 폴더에 가서 (기본적으로 C:Program FilesCAAllFusion ERwin Data Modeler에 설치 됩니다.) MMOPN32.exe 파일의 속성으로 갑니다.
호환성 탭으로 이동한 후, 호환성 모드의 '다음에 대해 호환성 모드로 이 프로그램 실행'을 체크하시고 window XP를 선택하면 됩니다.
중고폰 안드로이드폰으로 바꾸기
잠자고, 버려질 위기에 처한 윈도우 폰으로 사용되었던 폰에 '안드로이드 OS'를 설치한 뒤, 안
드로이드 폰으로 사용하는 Tip 입니다.
먼저 가지고 계신 폰들의 기종을 정확하게, 확인하신 후, 자신의 기종에 맞는 '안드로이드 OS'
를 다운로드 받습니다.
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 i910 (CDMA, used by Verizon in the US)
Samsung i780 (Mirage)
Samsung i907 (AT&T Epix)
Andromnia : http://andromnia.net/
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
먼저, Micro SD 카드 1GB 짜리를 준비합니다.
압축을 푼 후, 파일 폴더의 이름은 반드시 'andboot' 이라는 폴더로 바꿔야하며, 'andboot' 폴더안을 들어가면, 'startup config' 또는, 'startup' 이라는 폴더를 만날 수 있습니다.
각 폴더별로, 'startup.txt' 파일이 하나씩 들어 있습니다.
자신이 사용할 정확한 폰 기종을 확인한 다음, 자신의 폰 기종의 폴더를 카피 한 다음, 'andboot' 폴더에 붙여넣기를 합니다. (startup config 에서 카피 -> andboot 폴더에 붙여넣기)
Micro SD 카드에 복사를 하셨으면, PC 에서 빼내어, 사용할 핸드폰에 넣은 후, 핸드폰을
부팅합니다.
부팅 후 핸드폰 File Brower 를 이용하여, Micro SD 카드를 읽은 뒤, 조금전 만든 'andboot' 폴더를 열어서, 'heart.exe' 파일을 실행 시킵니다.
자신의 기종과 호환성이 맞게 되어있다면, 'Run' 버튼을 누르면, 자동 부팅 후 원하던, 'Android' 로 부팅을 하게 됩니다.
생각 이상으로 시간이 많이 걸리는 작업이니, 인내심을 기른다 생각하시고 기다려야겠죠.
제작자의 이야기를 빌리자면, '데이터 플랜' 등의 가입없이, 그냥 'wifi' 를 이용하면, Mail 등의 셋팅을 할 수 있다고 합니다. 'wifi' 를 적극 이용합시다.
다시 윈도우 폰으로 사용하고자 하시는 분들은, 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
무단으로 가져와서리..쩝..으흐흐흐 그래도 넘 좋은 포스팅이군요.