/* runLoader.sh */


wait4loader()

{

while(true)

do

     CNT=`ps -ef | grep -v grep | grep -c loader`

    if [ $CNT -ge 16 ]; then     #  이미 지정된 갯수보다 더 많은  프로세스가 동시 실행중이면

          sleep 1;                    #   대기한다.   16= CPU core 수

    else

          break;                     # 적으면 다음 프로세스 추가 실횅을 위해서 loop를 빠져 나간다.

   fi


done


}



loaderTable(0

{

     if [ $TABLE != "X" ] ; then

         loader ... -T $TABLE

     fi


}


for  TABLE in ${TABLES[@]}

do

           TABLE=${TABLE:="X"}

           wait4loader

           loaderTable


done




http://blog.redjini.com/282  참고


배열선언

array_name_1=("value 1" "value 2" "value 3")

array_name_2=(1 2 3)



배열참조


array_name=("value 1" "value 2" "value 3")

 
echo "array_name[0]     = ${array_name[0]}"  #print array_name[0]
echo "array_name[2]     = ${array_name[2]}"  #print array_name[2]
echo "array_name[*]     = ${array_name[*]}"  #print array_name all item
echo "array_name[@]     = ${array_name[@]}"  #print array_name all item
echo "array_name index  = ${!array_name[@]}" #print array_name index number
echo "array_name size   = ${#array_name[@]}" #print array_name size
echo "array_name[0] size= ${#array_name[0]}" #print array_name[0] size



출력결과

array_name[0]     = value 1

array_name[2]     = value 3
array_name[*]     = value 1 value 2 value 3
array_name[@]     = value 1 value 2 value 3
array_name index  = 0 1 2
array_name size   = 3
array_name[0] size= 7



vim 을 통해서 shell 에서 문자열 치환도 가능하다.

문자열 치환시 정규표현식도 사용가능하다.

vim 에서 사용하는  기타 명령어 기술이 가능하다.



/* a.sh */

# 특정 문자열 라인 삭제

vim -e a.dat <<EOF

:g/\<JAEIK\>/d         <---  해당 라인 삭제

:g/\<Nara\>/d          <---- 해당 라인 삭제

:wq                           <--- 저장후 종료

EOF



#특정 문자열 교체후 다른 파일로 저장

TABLE="T1"

vim -e template.form <<EOF

:%s/#TABLE#/$TABLE/g     

:wq! newfile.form

EOF



'시스템 > Unix command' 카테고리의 다른 글

파일 검색방법 참고  (0) 2018.07.17
포트 스캔하는 명령  (0) 2018.07.14
od - 바이너리 파일 덤프  (0) 2018.07.01
rlwrap - readline 이 적용되지 않은 program 을 위한 wrapper  (0) 2018.04.27
vim 관련 정보  (0) 2018.04.08

sqlplus  에서 이전 명령어를 다시 실행할 때  편리하다.


rlwrap - readline 이 적용되지 않은 program 을 위한 wrapper




'시스템 > Unix command' 카테고리의 다른 글

파일 검색방법 참고  (0) 2018.07.17
포트 스캔하는 명령  (0) 2018.07.14
od - 바이너리 파일 덤프  (0) 2018.07.01
vim을 shell script에서 실행하는 방법  (0) 2018.04.27
vim 관련 정보  (0) 2018.04.08


select parsing_schema_name 

     , count(*) sql_cnt

     , count(distinct substr(sql_text, 1, 100)) sql_cnt2

     , sum(executions) executions

     , round(avg(buffer_gets/executions)) buffer_gets

     , round(avg(disk_reads/executions)) disk_reads

     , round(avg(rows_processed/executions)) rows_processed

     , round(avg(elapsed_time/executions/1000000),2) "ELAPSED_TIME(AVG)"

     , count(case when elapsed_time/executions/1000000 >= 10 then 1 end) "BAD SQL"

     , round(max(elapsed_time/executions/1000000),2) "ELAPSED_TIME(MAX)"

from   v$sql

where  last_active_time >= sysdate - 7

and    executions > 0

group by parsing_schema_name

;



AWR과 ASH 를 활용하는 법이다. 자세한 설명은 성능고도화 1편 224page를 참고한다.

사용예이다..














  • 현재 접속해서 활동 중인 Active 세션 정보를 1초에 한번씩 샘플링해서 ASH 버퍼에 저장
  • 접속이 끊기 세션 정보도  저장되어 있으므로  추후 문제 추적이 용이함.
  • 내용은 AWR에 저장됨

select 

  sample_id, sample_time               --(1)

, session_id, session_serial#, user_id, xid  --(2)

, sql_id, sql_child_number, sql_plan_hash_value  --(3)

, session_state    --(4)

, qc_instance_id, qc_session_id  --(5)

, blocking_session, blocking_session_serial#, blocking_session_status  --(6)

, event, event#, seq#, wait_class, wait_time, time_waited  --(7)

, p1text, p1, p2text, p2, p3text, p3  --(8)

, current_obj#, current_file#, current_block#  --(9)

, program, module, action, client_id   --(10)

from   V$ACTIVE_SESSION_HISTORY

where rownum <= 10;




  (1)  샘플링이 일어난 시간과 샘플ID

  (2)  세션정보, User명 , 트랜잭션ID

  (3)  수행중 SQL 정보

  (4)  현재 세션의 상태 정보, 'ON CPU' 또는 'WAITING'

  (5)  병령 Slave 세션일 때, 쿼리 코디네이터(QC) 정보를 찾을 수 있게 함

  (6) 현재 세션 진행을 막고 있는 세션 정보

  (7) 현재 발생중인 대기 이벤트 정보

  (8) 현재 발생중인 대기 이벤트의 파라미터 정보

  (9) 해당 세션이 현재 참조하고 있는 오프젝트 정보, v$session 뷰에 있는 row_wait_obj#, row_wait_file#, row_wait_block# 칼럼을 가져온 것임

  (10) 애플리케이션 정보

  


select event , wait_time , seconds_in_wait , state , p1text || '->' || p1 || ',' || p2text || '->' || p2 || ',' || p3text || '->' || p3 param from v$session_wait where sid = 24






1. report 생성법

SQL> @?/rdbms/admin/awrrpt


2. 정해진 기간 동안 각 구간별 L 수행 횟수를 뽑는 쿼리
snap shot   begin ~ end 를 입력해 줘야 한다.  snap 번호는 awrrpt에서 출력해 줌


select to_char(min(s.begin_interval_time), 'hh24:mi') begin , to_char(min(s.end_interval_time), 'hh24:mi') end , sum(b.value-a.value) "execute count" from dba_hist_sysstat a, dba_hist_sysstat b, dba_hist_snapshot s where s.instance_number = &instance_number and s.snap_id between &begin_snap and &end_snap and a.stat_name = 'execute count' and b.stat_id = a.stat_id and b.snap_id = s.snap_id and a.snap_id = b.snap_id - 1 and a.instance_number = s.instance_number and b.instance_number = s.instance_number group by s.snap_id order by s.snap_id




















OKJSP  : jsp 강좌, tool 및 ejb, 데이터베이스 팀, 소스 제공 

http://www.okjsp.pe.kr )


JSP Study : JSP 커뮤니티, JAVA, 프로그래밍 강좌, 사용팁등 제공

( http://www.jspstudy.co.kr )



자바누리 : java 개발자 커뮤니티, 자바 초급, 고급 강좌, Enterprise java Solution 경험 공유 제공

( http://javanuri.devpia.com )



Android Open source Project : 안드로이드 오픈소스 프로젝트, 호환성, 기술정보, 보도자료 제공.

( http://source.android.com )


안드로이드사이드 : 안드로이드 개발자 커뮤니티, 게임, 갤럭시, 강좌, 강의, 교육 정보 제공

( http://www.androidside.com )



코리아 안드로이드: 구글 안드로이드 기술 커뮤니티, 세미나, 교육, 책, 저널등 수록

( http://www.kandroid.org )


'프로그래밍 > java' 카테고리의 다른 글

java concurrent programming 방법  (0) 2018.08.23

+ Recent posts