태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[오라클 질문] INSERT시에 세션별 FREE LIST 할당 방식에 대해서 알고 싶습니다.

기술이야기/Ask 엑셈 2010. 9. 15. 09:35

2010-09-07 16:28:59 에 등록된 질문입니다. 김신 님께서 질문해 주셨습니다.

안녕하세요. 또 이렇게 질문 올립니다.
다름이 아니오라 현재 A 라는 테이블이 있는데 크기가 거의 21g 정도 됩니다.
이 테이블이 실제크기는 20g 이지만 블럭에 들어 있는 데이타는 전체 크기에 비해서 작을 거라고 생각이 되어 지는데요.

테이블에 insert 전에 오라클은 free LIST 영역을 찾는걸로 알고 있습니다.
예를 들어 한 테이블에 10m extent가 두개 있다고 가정하고

두개의 세션에서 동시에 insert 할 경우에
같은 extent 안에 insert 되는 건지? 아니면 각자 다른 extent 에 하나씩 들어 가는건지 궁금하네요

데이타량에 비해 테이블이 좀 큰것 같은데.
현재 테이블스페이스는 오라클에서 자동으로 extent 를 할당 하는 방식을 쓰고 있습니다.
LOCALLY MANAGED TABLESPACE

만약에 한 세션이 FREE LIST 를 1번 EXTENT 에서 찾았다고 하면 두번째 세션은 2번 EXTENT를 할당 받게 되는 것인지.
아니면 트랜잭션에 관계없이 할당 받는 것인지 궁금합니다.


A:                                        엑셈 답변 보기

[오라클 질문] SQL*Net message from client 이벤트를 보면...

기술이야기/Ask 엑셈 2010. 8. 23. 10:27
 
2009-04-16 20:46:37 에 등록된 질문입니다.( Bruce Lee 님께서 질문해 주셨습니다.



안녕하세요.
고생 많으시네요. 세미나도 하시고 ask.엑셈의 답변도 하시고. 대단하십니다.
질문이 3가지가 있는데요.
SQL*Net message from client 이벤트가 많이 발생하고 있습니다.
이 이벤트는 sql문을 수행하면 무조건 발생하는 idle 이벤트로 알고 있습니다.
우리가 sql문 실행과 동시에 SQL*Net message from client 이벤트가 발생하고 실행이 되는게 맞나요?
그리고 한가지 더 질문이 있습니다.
맥스게이지 로그를 보다가 Active Session이 증가하는 구간이 있는데요, 대부분의 이벤트가 SQL*Net message from client입니다. 그외 대기이벤트는 없구요, stat 지표를 보면 그 시점의 execution count가 증가하는 것을 볼 수 있습니다. 그렇다면 execution count가 많이 발생한 sql문, 즉 recursive query가 많이 발생한 sql문으로 인해 active session이 증가하였고, 그 이유로 SQL*Net message from client 이벤트가 많이 발생하였다고 봐도 무방한지요?
마지막 질문입니다.
이벤트 중에(v$event_name 조회시에)

SQL*Net message to client
SQL*Net more data to client
SQL*Net message from client
SQL*Net more data from client
SQL*Net message to dblink
SQL*Net more data to dblink
SQL*Net message from dblink
SQL*Net more data from dblink
SQL*Net break/reset to dblink


이런 것들이 있는데요, 간략하게나마 정확하게 이런 이벤트들이 왜 발생하는지 알고 싶네요.
미리 감사드려요. 

A:                                        엑셈 답변 보기


[오라클 질문] blevel과 brancj/leaf의 깊이 변화 관계 문의

기술이야기/Ask 엑셈 2010. 8. 23. 10:22

2010-07-28 10:46:25 에 등록된 질문입니다. 박병섭 님께서 질문해 주셨습니다.

제목과 같습니다
단순히 용어정리만 해놓으면 무리가 없겠지만, 향후 제가 가르키는 입장에 선다면 조금 창피할것 같아. 이렇게 blevel과 brancj/leaf의 깊이 변화 관계가 어떤지 알고 싶어 질문을 올립니다. 즉, 제가 알고 싶은것은 어떤 사람은 leaf가 깊어져서 blevel이 늘어난다고 했고, 지난번 엑셈 세미나에서 조금 더 자세히 알고 싶어 문의를 했는데. branch가 깊어져서 blevel에 영향을 준다고 하셨습니다. 그래서 이번 기회에 기초를 다지고자 branch만 깊어지느냐? leaf만 깊어지느냐? 아니면 2개 모두 깊어져서 blevel에 영향을 주느냐? 이것이 알고 싶습니다. 그리고 또 가능하면 물리적으로 trace떠서보는 방법이 있다면 그것도 알려주시면 정말 감사하겠습니다. 







A:                                        엑셈 답변 보기

[오라클 질문] Sql Tuning Advisor의 create_tuning_task 함수 bind_list parameter

기술이야기/Ask 엑셈 2010. 7. 19. 09:44
2010-07-15 15:37:42 에 등록된 질문입니다.  Stargazer 님께서 질문해 주셨습니다.

안녕하세요. 

조동욱님의 sql profile예제를 보면 
data가 skew된 상태에서 bind변수 사용시 에서.. 

tunning task 생성시 
"bind_list " parameter를 사용하는것을 볼수 있습니다. 

begin 
begin 
dbms_sqltune.drop_tuning_task(task_name => 'tuning_task_2'); 
exception when others then 
null; 
end; 

:v_task_id := dbms_sqltune.create_tuning_task( 
        sql_id => 'f4uf6jq2ndms9', 
        task_name => 'tuning_task_2', 
        bind_list => sql_binds(anydata.ConvertVarchar2(100)), 
        scope => 'COMPREHENSIVE', 
        time_limit => 60 
      ); 
end; 


혹시 bind_list란 parameter가 어떤건지 설명해주실 수 있는지요. 

메뉴얼에서 보면..굉장히 간단하게 나왔더군요.. 
bind_list: An ordered list of bind values in ANYDATA type 

구체적으로 어떤때 사용하는건지... 
아마 해당 sql문의 bind변수 사용시 해당 값을 설정하는것 같은 느낌은 들지만.. 

시간 괜찮으시다면 설정방법및 예제도 함께 부탁드립니다. 

이렇게 질문을 올릴곳이 있다는것에 대해 늘 감사드립니다. 

수고하세요.. 

A:                                        엑셈 답변 보기

위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.

[오라클 질문] 크기가 매우작고 access가 아주 빈번한 테이블의 처리방안?

기술이야기/Ask 엑셈 2010. 7. 19. 09:40
2010-07-06 09:46:31 에 등록된 질문입니다. 김창두 님께서 질문해 주셨습니다.

안녕하세요.. 

크기가 매우 작은테이블이 있습니다.(row수는 150정도) 
AC_ID  NOT NULL  VARCHAR2(25) 
POSTING_AMT  NOT NULL  NUMBER(22,2) 
INIT_STATUS  NOT NULL  CHAR(1) 
START_AMT  NOT NULL  NUMBER(22,2) 
DAY_DR_SUM  NOT NULL  NUMBER(22,2) 
DAY_CR_SUM  NOT NULL  NUMBER(22,2) 
OVERDRAFT_AMT  NOT NULL  NUMBER(22,2) 
DAY_ODR_SUM    NUMBER(22,2) 
DAY_OCR_SUM    NUMBER(22,2) 


=주로 select하고 update가 발생합니다. (insert하고 delete는 1년에 몇번 발생하지 않음) 

Peaktime시에는 1초 100여개의 session이 access해야 합니다. 
그래서 buffer busy wait하고 row-lock wait가 발생합니다. 

현재 당장에 application을 수정하기는 불가능하고요, 그래서 
테이블에서 block경합을 최소화 하려고 합니다. 
1) pctfree 를 늘리는 방안 
2) 테이블스페이스의 block size를 줄여보는 방안(8K --> 2K) 
등을 생각하고 있는데요 

이런경우 block 경합을 최소화 할 수 있는 방법이 어떤 방법이 있을까요? 

- 어느 자료에서 보니까 테이블자체를 메모리에 올려놓는 방법이 있다고 하는데요 
이 방법이 적용가능 할까요? 

감사합니다. 

A:                                        엑셈 답변 보기

위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.

[오라클 질문] Direct Path Read

기술이야기/Ask 엑셈 2010. 7. 19. 09:38
2010-07-05 13:17:54 에 등록된 질문입니다. 최형석 님께서 질문해 주셨습니다.

Q:
Parallel 문장이 아닌데... Direct Path Read 이벤트가 발생합니다. 

V$session에서 SQL_ID를 조회한 후 v$sqlarea에서 SQL을 찾아보면 데이터는 없습니다. 

직전에 수행된 것인데 SQL임에도 불구하고 v$sqlarea에 데이터가 없는 것이 이상합니다. 

그리고, 동일한 SQL_ID가 지속적으로 보여짐에도 불구하고 Execution 수는 0이네요. 
v$sqlarea에서 exection 수를 조회해오니까... 당연히 0건이겠지요... 

물론, 수행시간은 순식간입니다만... 위의 event 발생 수가 제법 적지않습니다. 

AWR Report에서 TOP5에 올라와있구요... 물론 비율은 적지만요... 

대체... 저 Direct Path Read 이벤트를 발생시키는 sql이 뭐지 알 수 있는 방법이 없나요? 

그럼... 감사합니다. 


A:                                        엑셈 답변 보기

위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.

[오라클 질문] expdp(혹은 exp)에서 특정 테이블의 Data만 제외하고 expdp(exp)방법?

기술이야기/Ask 엑셈 2010. 6. 21. 14:49
2010-06-14 10:01:51 에 등록된 질문입니다. 김창두 님께서 질문해 주셨습니다.

안녕하세요 expdp(혹인 exp)를 이용해서 특정 schema의 전체 object를 expdp(혹인 exp)하고 싶습니다.

1) I_owner라는 schema의 전체 object를 expdp(exp)받고 싶습니다.
2) 단지 BJ_DATA라는 테이블이 있는 이 테이블은 너무 크고 로그성이라서 이 테이블은 테이블구조만 expdp(exp)받고 싶습니다.

이런경우 어떠한 명령어를 사용하며 될련지요?


A:                                        엑셈 답변 보기

위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.

[오라클 질문] 전체적으로 조건절의 컬럼들이 분포도가 좋지 않을때, 어떻게 인덱스를 잡아야 할지 조언부탁드립니다.

기술이야기/Ask 엑셈 2010. 6. 21. 14:44
2010-06-08 11:33:12 에 등록된 질문입니다. 김창두 님께서 질문해 주셨습니다.

Q:  
안녕하세요

배치시간에만 돌아가는 테이블입니다.

아래과 같은 SQL이 많이 돌아가는데
조건절에 들어오는 컬럼들이 전체적으로 분포도가 좋지 않습니다.
어떻게 index를 잡아야 할지요?


SQL 및 PLAN은 다음과 같습니다.

Table의 tr_date로 월별 파티션되어 있습니다.

select count(msg_no) from ibps_owner.BJ_DATA where tr_date=:0 and (o_rpc_id=:1 or r_rpc_id=:2) and SR_10049 = :3;

Execution Plan
--------------------------------------------------------------------------------
  0    SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4K Card=1 Bytes=21)
  1  0  SORT (AGGREGATE) (Card=1 Bytes=21)
  2  1  PARTITION RANGE (SINGLE) (Cost=4K Card=9K Bytes=192K)
  3  2    TABLE ACCESS (BY LOCAL INDEX ROWID) OF 'IBPS_OWNER.BJ_DATA' (TABLE) (Cost=4K Card=9K Bytes=192K)
  4  3      BITMAP CONVERSION (TO ROWIDS)
  5  4      BITMAP AND
  6  5        BITMAP INDEX (SINGLE VALUE) OF 'IBPS_OWNER.BJ_DATA_BIDX_2' (INDEX (BITMAP))
  7  5        BITMAP CONVERSION (FROM ROWIDS)
  8  7          SORT (ORDER BY)
  9  8          INDEX (RANGE SCAN) OF 'IBPS_OWNER.BJ_DATA_PK_0411' (INDEX (UNIQUE)) (Cost=226 Card=2K)
 
IBPS_OWNER.BJ_DATA
------------------
Rows=4,102,813                Blocks=4,104,910
Empty Blocks=0                Avg Space=0
Chain Count=0                  Avg Row Length=2,730
Avg Space Freelist Blocks=0        Freelist Blocks=0
Sample Size=4,102,813            Last Analyze=2010/06/04
Partitioned=YES               

Column Name              Nullable Column Type  Distinct  Buckets
-------------------------------- -------- ------------- ---------- ----------
MSG_NO                  NOT NULL CHAR(8)        2,354    254
TR_TYPE                NOT NULL CHAR(6)          3      3
TR_DATE                NOT NULL CHAR(8)          67      67
CURRENCY_CODE                  CHAR(3)          1      1
TR_AMT                        NUMBER(22,2)    9,079      1
APPROVE_TIME                    CHAR(14)      634,837      1
APPROVER_CODE                  VARCHAR2(16)      729      1
E_SIGN                        VARCHAR2(400) 4,092,542      1
RELATION_NO                    VARCHAR2(40)    54,429      1
FEE_CI                        NUMBER(8)        516      1
FEE_FLAG                      VARCHAR2(1)        1      1
OPERT1                        CHAR(2)          2      1
OPERT2                        CHAR(3)          2      1
TR_CONTENT                    VARCHAR2(630) 3,368,101      1
O_CI_ID                NOT NULL NUMBER(8)        511    254
O_CODE                        VARCHAR2(20)      15      1
O_NAME                        VARCHAR2(210)  70,797      1
O_ADDRESS                      VARCHAR2(300)    1,852      1
O_IDENTITY                    VARCHAR2(75)      28      1
O_ACC                        VARCHAR2(25)    4,730      1
O_IND_CI_ID                    NUMBER(8)        552    254
R_CI_ID                      NUMBER(8)        521    254
R_CODE                        VARCHAR2(20)      4      1
R_NAME                        VARCHAR2(210)  113,098      1
R_ADDRESS                      VARCHAR2(300)    949      1
R_IDENTITY                    VARCHAR2(75)      2      1
R_ACC                        VARCHAR2(25)  119,605      1
R_IND_CI_ID                    NUMBER(8)        734      1
O_RPC_ID                      NUMBER(8)        6      6
R_RPC_ID                      NUMBER(8)        6      6
POSTING_TIME                    CHAR(14)      580,215      1
MSG_RCV_TIME                    CHAR(14)      144,842      1
AUTHORIZED                    CHAR(1)          0      0
RES_CODE                      CHAR(4)          2      1
RESPOND_TIME                    CHAR(14)      104,407      1
TAD_ID                        CHAR(5)        165      1
MSG_SND_TIME                    CHAR(14)      836,167      1
REFERENCE                      VARCHAR2(300)      23      1
TAX_CODE                      VARCHAR2(30)      15      1
TR_CRT_TIME                    CHAR(14)      767,301      1
CANCEL_FLAG                    CHAR(1)          0      0
CANCEL_TIME                    CHAR(14)          0      0
RECON_RESULT                    CHAR(7)          1      1
LIMIT_STATUS                    CHAR(1)          1      1
NET_STATUS                    CHAR(1)          1      1
NET_CNT                      NUMBER(2)        1      1
O_HO_ID                      NUMBER(8)        128      1
R_HO_ID                      NUMBER(8)        139      1
SR_10037                      VARCHAR2(1)        2      2
SR_10049                      VARCHAR2(1)        2      2
SR_23013                      VARCHAR2(1)        2      2
SR_50020                      VARCHAR2(1)        2      2
SR_51013                      VARCHAR2(1)        2      2
SR_80018                      VARCHAR2(1)        2      2
FT_TR_TYPE                    VARCHAR2(1)        2      1
O_HO_RPC                      NUMBER(8)        6      6
R_HO_RPC                      NUMBER(8)        6      6
SR_HO_10037                    VARCHAR2(1)        2      2
SR_HO_10049                    VARCHAR2(1)        2      2
SR_HO_23013                    VARCHAR2(1)        2      2
SR_HO_50020                    VARCHAR2(1)        2      2
SR_HO_51013                    VARCHAR2(1)        2      2
SR_HO_80018                    VARCHAR2(1)        2      2

INDEX
-----------------------------------------------------------------------------
BJ_DATA_BIDX_2 : SR_10049
    Partition=LOCAL NON_PREFIXED
    Type=BITMAP, Uniq=NO, Distinct=2, Rows=1,159, Last Analyze=2010/03/06
BJ_DATA_BIDX_3 : SR_23013
    Partition=LOCAL NON_PREFIXED
    Type=BITMAP, Uniq=NO, Distinct=2, Rows=1,132, Last Analyze=2010/03/06
BJ_DATA_BIDX_4 : SR_50020
    Partition=LOCAL NON_PREFIXED
    Type=BITMAP, Uniq=NO, Distinct=2, Rows=1,157, Last Analyze=2010/03/06
BJ_DATA_BIDX_5 : SR_51013
    Partition=LOCAL NON_PREFIXED
    Type=BITMAP, Uniq=NO, Distinct=2, Rows=1,130, Last Analyze=2010/03/06
BJ_DATA_BIDX_6 : SR_80018
    Partition=LOCAL NON_PREFIXED
    Type=BITMAP, Uniq=NO, Distinct=2, Rows=1,128, Last Analyze=2010/03/06
BJ_DATA_PK_0411 : TR_DATE + O_CI_ID + MSG_NO + TR_TYPE
    Partition=LOCAL PREFIXED
    Type=NORMAL, Uniq=YES, Distinct=2,604,882, Rows=2,604,882, Last Analyze=2010/03/06

A:                                        엑셈 답변 보기

위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.