Direct Insert path

I want to insert large data from dblinks using direct insert however as rollback segment is quite small i need to commit after every 2000 rows or so.
insert /*+ append */ into abc_monthly@dblink select * from abc partition(ODFRC_20040201);
any help guys !
or any other way round for faster insert than this ?
Edited by: Avi on Aug 12, 2009 9:41 AM

Hi,
Don't shoot the messenger but your append hint will be ignored:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:549493700346053658

Similar Messages

  • Direct insert Vs collection

    Greetings,
    In one of my procedures, I've used collection with commit every 1000 records. It took about 4 hrs to process 14,000,000 records. Then, without changing the logic, I've modified the same procedure and did direct insert and delete statements. It took about 1.5 hrs.
    I was wrong thinking that collection would improve performance as they fetch all at the same time. Is this because of 'commit'? I have also experimented with commit every 10,000 records, even then it didn't improve much.
    Could you discuss further on why slow Vs faster? Thank you,
    Lakshmi

    The rules of thumb (borrowed from Tom Kyte)
    1) If you can do it in SQL, do it in SQL
    2) If you can't do it in SQL, do it in PL/SQL. "Can't do it in SQL" generally means that you can't figure out how to code the logic in SQL and/or the business logic is so complex that it makes the SQL unreadable.
    2a) If you have to use PL/SQL, try to use collections & bulk processing.
    3) If you can't do it in PL/SQL, do it in a Java stored procedure
    4) If you can't do it in a Java stored procedure, do it in an external procedure
    Collections are never preferred over straight SQL from a performance standpoint, but they may be easier to code for more complex business rules.
    Justin

  • DIRECT INSERTS

    Dear forum,
    We can directly insert to table in bulk like
    insert into target as select * from source1 a,source_2 b where a.s1=b.s2
    From the perfomance itself we know that above is n't a record by record insert instead it is bulk insert .
    1) Experts pls tell me ..how oracle manages above query
    2)How many records it send to db @ a time
    Thanks

    hi keith,
    Pls see my query
    insert into pkg_tmp
    select           find_key(VALUE,8) ,
              (VL_ID)mod10 ,
              VALUE_ST     /* */     
    from
    SOURCE_ATTR d,
    STOCK c,
    CONTENT b ,
    PACKAGES a /* */
    where
    a.PACKAGE_ID = b.PACKAGE_ID
    and
         b.TP_ID =1
         and
         b.VL_ID = c.RRS_ID
    and
         c.RRS_ID = VAL_ID
         and
         ATTR_ID = 11
    Tables in from clause contains records in millions ( a = 33M ,b=37M,C=37M,D=122M)...
    I need to select the query as shown in query and finally result to be loaded into pkg_tmp table.
    Thanks..

  • Changing the direction of path

    1.  Create patch or object
    2.  Add art brush
    3.  Changing the direction of path ON or OFF

    Absolutely... this is something I have tried to work out. There are some complicated work around, such as break the path. That works but if the object needs to retain a fill, weird things can happen. I usually copy and paste in front, break the path, then reverse path direction.

  • Jtree; searching node by inserting path name

    Hello,
    I have a jtree which allows me to explore my harddisk.
    The thing I want is finding a directory by inserting a path name ( with a JTextfield).
    I am already able to reveice the inserted path.
    But how do I let the JTree go to that inserted path name?
    For more information, just ask.
    Grtz

    well, if you have the node and are using DefaultTreeModel, you can call: getPathToRoot(TreeNode)
    Not sure how to find the node from the value except to just loop thru the entire tree... or maintain a separate table of value/node objects.

  • My pen tool will only make angles and I cannot direct its path.

    my pen tool will only make angles and I cannot direct its path.

    Have you tried click-drag? This should give you handles to work with.

  • How to directly insert pictures inside a wiki page without the need to enter the picture's properties

    I am working on a publishing site collection using the enterprise wiki template. Add when I want to add a new Picture from my Pc to the wiki page, I will be prompted with the following dialog:-
    So can anyone advice how i can bypass this dialog and directly add the imag to the wiki page?
    i tried modifying the "Images" content type by hiding the above fields, but still i will be prompted to enter the following :-

    Hi,
    According to your post, my understanding is that you want to directly insert pictures inside a wiki page without the need to enter the picture's properties.
    Per my knowledge, you can use javascript to bypass Edit Properties Page while uploading pictures.
    Here are some similar articles for your reference:
    How to bypass Edit Properties
    Page while uploading documents in a document library
    How to bypass Edit Properties Page while uploading documents in a
    SharePoint and .NET: How to bypass Edit Properties Page or Skip EditForm.aspx Page while uploading documents in a document library
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Direct Insert or API

    I want to create/insert directly into CI_FUNCTION_ENTITY_USAGES (i$sdd_funent) by using appropriate values for all the not-null columns. I can see that ci_function_entity_usages.function_ref comes from ci_functions.irid,
    ci_function_entity_usages.entity_ref comes from ci_entities.irid, etc ...
    My question is : How do I populate ci_function_entity_usages.id,
    ci_function_entity_usages.irid, ci_function_entity_usages.ivid.
    Are they primed from some internal sequence or some pre-insert
    trigger somewhere?
    Is there a better way of doing this than using direct insert eg an api?
    Thanks in advance
    Ian

    At the moment I've no access to any Designer repository.
    The idea of API is that for each object there is individual PL/SQL package. For ci_function_entity_usages it should be ciofunction_entity_usage. In this package is type 'data' defined. It has 2 components: i and v. i is record of boolean variables. v is record of values - it maches ci_function_entity_usages view.
    To insert new function-entity usage you have to fill in data.v values and set data.i to true for elements you filled in in data.v. Then use ciofunction_entity_usage.ins procedure to insetr record.
    You do not have to set ID, ivid or irid - it is set by API.
    You can follow example.
    Hope it helps. Paweł

  • How to load data to a "clustered table" quickly?  direct insert not work

    We have a single hash clustered table whose size is 45G, and we used the command:
    insert /*+ append */ into t_hashed as select * from source.
    the source is about 30G, it takes a very long time(several days, and not yet completed).
    I dumped the redo log, and find there are lots of redo info about the insert. I have thought it should create much redo as it is "direct path insert", but from the dump info I could say the direct path insert didn't take effect.

    Your assessment is correct. INSERT /*+ APPEND */ does not work with a hash clustered table.
    If you think about how hash clusters work, and how direct load insert works, it should be clear to you why a direct load insert via the append hint can never work.
    How hash clusters work (well, only the part that's relevant to the current discussion):
    Initially, at creation time, the storage for the entire cluster is preallocated, based on the various cluster parameters you chose. Think about that. All the storage is allocated to the cluster.
    How direct load works (well, only the part that's relevant to the current discussion):
    Space already allocated to and used by the segment is ignored. Space is taken from free, unformatted blocks from above the high water mark.
    So, hopefully it's clear how these features are incompatible.
    Bottom line:
    It doesn't work, there's no way around it, there's nothing you can do about it....
    -Mark

  • Direct selection path tool deletes entire path

    Need to delete part of a path, but when I select the points I want to delete (or a line between two points) with the Direct Selection tool (not Path Selection) and hit "delete" the entire path deletes!
    This appears to be a new CS5 default on my copy.
    Any thoughts?

    Thanks, layer needed to be selected. Don't recall this being an issue in CS3.
    Is this a new "feature" ;-)

  • How can I manually direct the path I want into my PC folders???

    on my laptop, my company has what's called a "Personal Profile" for me. I have a limited profile space that I can take up. My Personal Profile space is everything in "My Documents" PLUS everything in my "Application Data". When I exceed this "profile space" I can't update my roaming profile, can't shut my computer down, etc.
    Ok, so here's the situation.
    I just got an iPad. I downloaded iTunes and installed in on my laptop for sync purposes. When I added all my songs to my iTunes library (from my PC at home) it automatically dumped these in "MY Music" under "My Documents" and I went WAY over my profile space maximum. I easily remedied this by going into the preferences in iTunes and changing the default folder location for iTunes media files.
    However, "album art" is (apparently) a different folder altogether and is not associated with the media files within iTunes. iTunes AUTOMATICALLY created a folder in "My Music" called iTunes. In that folder is another folder called "Album Art". That folder is still causing me problems with my profile space. As I mentioned, all of my iTunes media has been moved and so I'm cool there. So, I went in and deleted the folder "Album Art" under "My Music". Solved the problem. But then, when I fired up iTunes, of course, all of my album art was blank. iTunes automatically updated and automatically RE_CREATED the file called "Album Artwork" under "My Music", so now I'm back over my profile limit again.
    I can not find anywhere in iTunes that allows me to specify my path or location for Album Art. If I move or delete the file, iTunes automatically re-creates it.
    What can I do?
    Message was edited by: rustyangel

    +26 views and no answers??? Not even a stab?+
    You only posted an hour & a half ago, and this is a user-to-user board. You gotta wait until someone happens along who knows the answer.
    Which if you think about it, silence is better than "taking a stab" and possibly giving bad advice!
    Anyhoo. You need to move your itunes database to the other folder.
    THen the artwork folders will follow.
    This is the file to move
    iTunes LIbrary.itl
    After you move it, you need to do a shift-start of iTunes to tell it to use the new location.
    Press AND HOLD the shift key until you see a prompt. Coose the new location. Itunes will continue to use that new place until you do another shift-start.

  • Cursor v/s direct insert

    hi all,
    which one is better...?
    defining a cursor for an insert or using the select stmt in the insert?
    ex1:
    declare cursor c1 as
    select a,b from table1
    begin
    for i in c1
    loop
    insert into table2 values i.a, i.b ;
    end loop;
    end;
    ex2
    begin
    insert into table2 values (select a, b from table1);
    end;
    thnks

    ...and here are the facts:
    SQL> set timing on
    SQL> declare
      2  cursor c is
      3  select *
      4  from all_Tables;
      5  begin
      6  for r in c loop
      7  insert into test values(
      8  r.OWNER                    ,
      9  r.TABLE_NAME               ,
    10  r.TABLESPACE_NAME          ,
    11  r.CLUSTER_NAME             ,
    12  r.IOT_NAME                 ,
    13  r.PCT_FREE                 ,
    14  r.PCT_USED                 ,
    15  r.INI_TRANS                ,
    16  r.MAX_TRANS                ,
    17  r.INITIAL_EXTENT           ,
    18  r.NEXT_EXTENT              ,
    19  r.MIN_EXTENTS              ,
    20  r.MAX_EXTENTS              ,
    21  r.PCT_INCREASE             ,
    22  r.FREELISTS                ,
    23  r.FREELIST_GROUPS          ,
    24  r.LOGGING                  ,
    25  r.BACKED_UP                ,
    26  r.NUM_ROWS                 ,
    27  r.BLOCKS                   ,
    28  r.EMPTY_BLOCKS             ,
    29  r.AVG_SPACE                ,
    30  r.CHAIN_CNT                ,
    31  r.AVG_ROW_LEN              ,
    32  r.AVG_SPACE_FREELIST_BLOCKS,
    33  r.NUM_FREELIST_BLOCKS,
    34  r.DEGREE             ,
    35  r.INSTANCES          ,
    36  r.CACHE              ,
    37  r.TABLE_LOCK         ,
    38  r.SAMPLE_SIZE        ,
    39  r.LAST_ANALYZED      ,
    40  r.PARTITIONED        ,
    41  r.IOT_TYPE           ,
    42  r.TEMPORARY          ,
    43  r.SECONDARY          ,
    44  r.NESTED             ,
    45  r.BUFFER_POOL        ,
    46  r.ROW_MOVEMENT       ,
    47  r.GLOBAL_STATS       ,
    48  r.USER_STATS         ,
    49  r.DURATION           ,
    50  r.SKIP_CORRUPT       ,
    51  r.MONITORING         ,
    52  r.CLUSTER_OWNER      ,
    53  r.DEPENDENCIES       ,
    54  r.COMPRESSION        ,
    55  r.DROPPED
    56  );
    57  end loop;
    58* end;
    SQL> /
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:04.07
    SQL> insert into test
      2  select *
      3  from all_tables;
    3718 rows created.
    Elapsed: 00:00:01.07
    SQL> Regards,
    Gerd

  • SOA based direction and path of SAP & SAP PI's role as SOA Middleware in it

    Hi Gurus
    I am trying to get knowledge on XI/PI SOA capabilities.
    Also in particular how the following components such as BPM, Business Rules Manager, Service Repository and Registry, Web Services and BPEL will help in building in SOA and the roles of these PI 7.1 components in it.
    And is NW Composition Environment a subset of PI 7.1 ??
    Any web blogs or documentation on this topics will be very helpful to me.
    Please, enlighten me ; your help is greatly appreciated!!
    Thank you,
    Ritu

    your question is having very large scope,
    1) for PI component role in SOA , please go to SOA area of sdn , go through the concept, and ask questions specifically.
    2) NE CE is not subset of PI .

  • DIRECT PATH LOAD의 개념 및 사용 방법

    제품 : ORACLE SERVER
    작성날짜 : 1998-11-27
    매우 많은 양의 데이타를 빠른 시간 내에 load하고자하는 경우 direct path load를
    사용할 수 있다. 여기에서 이러한 direct path load의 자세한 개념 및 사용방법,
    사용 시 고려해야 할 점 등을 설명한다.
    1. conventional path load
    일반적인 sql*loader를 이용한 방법은 존재하는 table에 datafile 내의 data를
    SQL의 INSERT command를 이용하여 insert시킨다. 이렇게 SQL command를
    이용하기 때문에 각각의 데이타를 위한 insert command가 생성되어 parsing되는
    과정이 필요하며, 먼저 bind array buffer (data block buffer) 내에 insert되는
    데이타를 입력시킨 후 이것을 disk에 write하게 된다.
    conventional path load를 사용하여야 하는 경우는 다음과 같다.
    --- load 중에 table을 index를 이용하여 access하여야 하는 경우
    direct load중에는 index가 'direct load state'가 되어 사용이 불가능하다.
    --- load 중에 index를 사용하지 않고 table을 update나 insert등을 수행해야
    하는 경우
    direct load 중에는 table에 exclusive write(X) lock을 건다.
    --- SQL*NET을 통해 load를 수행해야 하는 경우
    --- clustered table에 load하여야 하는 경우
    --- index가 걸려 있는 큰 table에 적은 수의 데이타를 load하고자 할 때
    --- referential이나 check integrity가 정의되어 있는 큰 table에
    load하고자 할 때
    --- data field에 SQL function을 사용하여 load하고자 할 때
    2. direct path load의 수행 원리
    Direct Path Loads는 다음과 같은 특징들로 인하여 매우 많은 양의 데이타를
    빠른 시간에 load하고자 할 때 이용하는 것이 바람직하다.
    (1) SQL INSERT 문장을 generate하여 수행하지 않는다.
    (2) memory 내의 bind array buffer를 이용하지 않고 database block의
    format과 같은 data
    block을 memory에 만들어 데이타를 넣은 후 그대로 disk에 write한다.
    memory 내의 block buffer와 disk의 block은 그 format이 다르다.
    (3) load 시작 시에 table에 lock을 걸고 load가 끝나면 release시킨다.
    (4) table의 HWM (High Water Mark) 윗 부분의 block에 data를 load한다.
    HWM는 table에 data가 insert됨에 따라 계속 늘어나고 truncate 외에는
    줄어들게 하지 못한다.
    그러므로, 항상 완전히 빈 새로운 block을 할당받아 data를 입력시키게 된다.
    (5) instance failure가 발생하여도 redo log file을 필요로 하지 않는다.
    (6) UNDO information을 발생시키지 않는다.
    즉 rollback segment를 사용하지 않는다.
    (7) OS에서 asynchronous I/O가 가능하다면, 복수개의 buffer에 의해서 동시에
    data를 읽어서 buffer에 write하면서 buffer에서 disk로 write할 수 있다.
    (8) parallel option을 이용하면 더욱 성능을 향상시킬 수 있다.
    3. direct path load의 사용방법 및 options
    direct path load를 사용하기 위한 view들은 다음 script에 포함어 있으며,
    미리 sys user로 수행되어야 한다. 단 이 script는 catalog.sql에 포함되어 있어,
    db 구성 시에 이미 수행되어진다.
    @$ORACLE_HOME/rdbms/admin/catldr.sql
    direct path load를 사용하기 위해서는 일반적인 sqlload 명령문에 DIRECT=TRUE를
    포함시키기만 하면 된다. 다음과 같이 기술하면 된다.
    sqlload username/password control=loadtest.ctl direct=true
    이 direct path load를 사용 시에 고려할 만한 추가적인 option 및 control file
    내에 기술 가능한 clause들을 살펴본다.
    (1) ROWS = n
    conventional path load에서 rows는 default가 64이며, rows에 지정된 갯수
    만큼의 row가 load되면 commit이 발생한다. 이와 비슷하게 direct load
    path에서는 rows option을 이용하여 data save를 이루며, data save가 발생하면
    data는 기존 table에 포함되어 입력된 data를 잃지 않게 된다.
    단 이 때 direct path load는 모든 data가 load된 다음에야 index가
    구성되므로 data save가 발생하여도 index는 여전히 direct load state로
    사용하지 못하게 된다.
    direct path load에서 이 rows의 default값은 unlimited이며, 지정된 값이
    database block을 채우지 못하면 block을 완전히 채우는 값으로 올림하여,
    partial block이 생성되지 않도록 한다.
    (2) PIECED clause
    control file내에 column_spec datatype_spec PIECED 순으로 기술하는
    것으로서 direct path load에만 유효하다. LONG type과 같이 하나의 data가
    maximum buffer size보다 큰 경우 하나의 data를 여러번에 나누어 load하는
    것이다. 이 option은 table의 맨 마지막 field
    하나에만 적용가능하며, index column인 경우에는 사용할 수 없다.
    그리고 load도중 data에 문제가 있는 경우 현재 load되는 data의 잘린 부분만
    bad file에 기록되게 된다. 왜냐하면 이전 조각은 이미 datafile에 기록되어
    buffer에는 남아있지 않기 때문이다.
    (3) READBUFFERS = n (default is 4)
    만약 매우 큰 data가 마지막 field가 아니거나 index의 한 부분인 경우
    PIECED option을 사용할 수 없다. 이러한 경우 buffer size를 증가시켜야
    하는데 이것은 readbuffers option을 이용하면 된다. default buffer갯수는
    4개이며, 만약 data load중 ORA-2374(No more slots for read buffer
    queue) message가 나타나면, buffer갯수가 부족한 것이므로 늘려주도록 한다.
    단 일반적으로는 이 option을 이용하여 값을 늘린다하더라도 system
    overhead만 증가하고 performance의 향상은 기대하기 어렵다.
    4. direct path load에서의 index 처리
    direct path load에서 인덱스를 생성하는 절차는 다음과 같다.
    (1) data가 table에 load된다.
    (2) load된 data의 key 부분이 temporary segment에 copy되어 sort된다.
    (3) 기존에 존재하던 index와 (2)에 의해서 정렬된 key가 merge된다.
    (4) (3)에 의해서 새로운 index가 만들어진다.
    기존에 존재하던 index와 temporary segment, 그리고 새로 만들어지는 index가
    merge가 완전히 끝날 때까지 모두 존재한다.
    (5) old index와 temporary segment는 지워진다.
    이와 같은 절차에 반해 conventional path load는 data가 insert될 때마다 한
    row 씩 index에 첨가된다. 그러므로 temporary storage space는 필요하지 않지만
    direct path load에 비해 index 생성 시간도 느리고, index tree의 balancing도
    떨어지게 된다.
    index생성 시 필요한 temporary space는 다음과 같은 공식에 의해 예측되어질 수
    있다.
    1.3 * key_storage
    key_storage = (number_of_rows) * (10 + sum_of_column_sizes +
    number_of_columns)
    여기에서 1.3은 평균적으로 sort 시에 추가적으로 필요한 space를 위한 값이며,
    전체 data가 완전히 순서가 거꾸로 된 경우에는 2, 전체가 미리 정렬된 경우라면
    1을 적용하면 된다.
    --- SINGLEROW clause
    이와 같이 direct path load에서 index 생성 시 space를 많이 차지하는 문제점
    때문에 resource가 부족한 경우에는 SINGLEROW option을 사용할 수 있다.
    이 option은 controlfile 내에 다음과 같은 형태로 기술하며, direct path
    load에만 사용 가능하다.
    into tables table_name [sorted indexes...] singlerow
    이 option을 사용하면 전체 data가 load된 뒤에 index가 구성되는 것이 아니라
    data가 load됨에 따라 data 각각이 바로 index에 추가된다.
    이 option은 기존에 미리 index가 존재하는 경우 index를 생성하는 동안
    merge를 위해 space를 추가적으로 필요로 하는 것을 막고자 하는 것이므로
    INSERT 시에는 사용하지 않고, APPEND시에만 사용하도록 하고 있다.
    실제 새로 load할 data 보다 기존 table이 20배 이상 클 때 사용하도록 권하고
    있다.
    direct path load는 rollback information을 기록하지 않지만, 이 singlerow
    option을 사용하면 insert되는 index에 대해 undo 정보를 rollback segment에
    기록하게 된다.
    그러나, 중간에 instance failure가 발생하면 data는 data save까지는 보존
    되지만 index는 여전히 direct load state로 사용할 수 없게 된다.
    --- Direct Load State
    만약 direct path load가 성공적으로 끝나지 않으면 index는 direct load
    state로 된다.
    이 index를 통해 조회하고자 하면 다음과 같은 오류가 발생한다.
    ORA-01502 : index 'SCOTT.DEPT_PK' is in direct load state.
    index가 direct load state로 되는 원인을 구체적으로 살펴보면 다음과 같다.
    (1) index가 생성되는 과정에서 space가 부족한 경우
    (2) SORTED INDEXES clause가 사용되었으나, 실제 data는 정렬되어 있지 않은
    경우
    이러한 경우 data는 모두 load가 되고, index만이 direct load state로 된다.
    (3) index 생성 도중 instance failure가 발생한 경우
    (4) unique index가 지정되어 있는 컬럼에 중복된 data가 load되는 경우
    특정 index가 direct load state인지를 확인하는 방법은 다음과 같다.
    select index_name, status
    from user_indexes
    where table_name = TABLE_NAME';
    만약 index가 direct load state로 나타나면 그 index는 drop하고 재생성
    하여야만 사용할 수 있다. 단, direct load 중에는 모든 index가 direct
    load state로 되었다가 load가 성공적으로 끝나면 자동으로 valid로 변경된다.
    --- Pre-sorting (SORTED INDEX)
    direct load 시 index구성을 위해서 정렬하는 시간을 줄이기 위해 미리 index
    column에 대해서 data를 정렬하여 load시킬 수 있다. 이 때 control file 내에
    SORTED INDEXES option을 다음과 같이 정의한다.
    이 option은 direct path load 시에만 유효하며, 복수 개의 index에 대해서
    지정가능하다.
    into table table_name SORTED INDEXES (index_names_with_blank)
    만약, 기존의 index가 이미 존재한다면, 새로운 key를 일시적으로 저장할 만큼
    의 temporary storage가 필요하며, 기존 index가 없는 경우였다면, 이러한
    temporary space도 필요하지 않다.
    이와 같이 direct path load 시에 index 구성 시에는 기존 데이타가 있는 table에
    load하는 경우 space도 추가적으로 들고, load가 완전히 성공적으로 끝나지 않으면
    index를 재생성하여야 하므로, 일반적으로 direct path load 전에 미리 table의
    index를 제거한 후 load가 모두 끝난 후 재생성하도록 한다.
    5. Recovery
    direct load는 기존 segment중간에 data를 insert하는 것이 아니라 완전히
    새로운 block을 할당받아 정확히 write가 끝난 다음 해당 segment에 포함되기
    때문에 instance failure시에는 redo log정보를 필요로 하지 않는다. 그러나
    default로 direct load는 redo log에 입력되는 data를 기록하는데 이것은 media
    recovery를 위한 것이다. 그러므로 archive log mode가 아니면 direct load에
    생성된 redo log 정보는 불필요하게 되므로 NOARCHIVELOG mode시에는 항상
    control file내에 UNRECOVERABLE이라는 option을 사용하여 redo log에 redo entry를 기록하지 않도록 한다.
    data가 redo log 정보 없이 instance failure시에 data save까지는 보호되는데
    반해 index는 무조건 direct load state가 되어 재생성하여야 한다. 그리고 data save이후의 load하고자 하는 table에 할당되었던 extent는 load된 data가
    user에게 보여지지는 않지만 extent가 free space로 release되지는 않는다.
    6. Integrity Constraints & Triggers
    direct path load중 not null, unique, primary key constraint는 enable
    상태로 존재한다. not null은 insert시에 check되고 unique는 load후 index를
    구성하는 시점에 check된다.
    그러나 check constraint와 referential constraint는 load가 시작되면서
    disable상태로 된다. 전체 데이타가 load되고 난 후 이렇게 disable된
    constraints를 enable시키려면 control file내에 REENABLE이라는 option을
    지정하여야 한다. 이 reenable option은 각 constraint마다 지정할 수는 없으며
    control file에 한번 지정하면 전체 integrity/check constraint에 영향을
    미치게 된다. 만약 reenable되는 과정에서 constraint를 위배하는 data가
    발견되면 해당 constraint는 enable되지 못하고 disabled status로 남게 되며,
    이렇게 위배된 data를 확인하기 위해서는 reenable clause에 exceptions option을 다음과 같이 추가하면 된다.
    reenable [exceptions table_name]
    이 때 table_name은 $ORACLE_HOME/rdbms/admin/utlexcpt.sql을 다른
    directory로copy하여 table이름을 exceptions가 아닌 다른 이름으로 만들어 수행시키면 된다.
    insert trigger도 integrity/check constraint와 같이 direct load가 시작하는
    시점에 disable되며, load가 끝나면 자동으로 enable된다. 단 enable되고 나서도
    load에 의해 입력된 data에 대해 trigger가 fire되지는 않는다.

  • Direct Path Reads instead of Sequential Reads for index range scan

    Database is 11.2. I have two development schemas, with the same table loaded in each schema - a 5 million row table. The execution path for the sql statement is the same against both tables; it's doing an index range scan.
    But it would appear Oracle performs a direct path read against one schema, and performs sequential reads against the other schema. I don't understand why I'm seeing different behavior when the execution plan is the same. Any ideas? These are two different schemas in the same database.

    There is not enough information.So you even these tables located same database and you gathered statistics it is not mean both run time wait event statistics must be same.Really they are different tables.If both query use INDEX RANGE SCAN the it is not mean these plans are same.What about table and their index statistics? are they same? for example num_row or num_blocks of both tables are same? also about indexes.In additionally if you want to get exact reason you can enable sql trace(using dbms_monitor or setting sql_trace parameter to true according session) and need analyze result trace file using tkprof utility.In additionally in 11g here when query execution time oracle automatically choose direct read path(serial) based on size of tables and size of buffer cache(also here is available some hidden parameter to controlling this behavior).

Maybe you are looking for