Allowing the movement line temporarily on partitioned table

Hello

Using oracle 11.2.0.3 and have tables that are hash of composite range partitioned.

We need to update the dates of theses for a small percentage of records 1 < %.

Normally we have movement line enabled so that can copy the lines in the temporary table, update insert_table, remove lines concerned living table and replace them with the new dates of the partition.

Another option allowing possibly temporariliy movement line.

Thoughts?

Thank you

Is there any disadvanatges to allowing it for example from performance perspective.

Haerd was a bad iade of have it activated - perhaps isn't so bad.

Tom Kyte meets ALL these questions (and more) in this blog:

https://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:35203106066718

If never actually cause you a row to move, then there is zero overhead. All the movmement of line enable does is give us permission to move a line, if you do not ask us to move the line - extra "nothing happens.
. . .

Follow-up Friday, March 10, 2009-02:00 UTC:

Is there something wrong? Only you can answer that you have any application that expects the rowid is constant for a line? If yes - then it is false, if not - then it's probably OK.

Any overload? No, it's just allowed to change a rowid if you perform an operation that would have caused a rowid to change - alter table t shrink compact space, flashback table t to..., update t set partition_key = some_value_that_moves_row;

You can change a table instantly to activate circulation line - whatever the size of the table - it'll be instant - you have no need to do advance if you don't want, fairly easy to add later...

I recommend you to read the ENTIRE blog because there are many other issues that should relieve your concerns and good examples.

As says this quote above if you have an application that expects the ROWID is constant for a line, then you might have a problem.

ROWID is the way the FASTER to search for a line. Sometimes the ETL process are complex and multiple operations on a line by multiple, separate steps.

You can often get huge performance gains in saving the values ROWID lines collections or tables of work/temp during ETL processing. For example, a query in PL/SQL can use ' RETURN ROWID IN... "to get all of the ROWID that affects the query.

This set of ROWID can be used in the following queries to locate the exact lines directly without the need of ALL indexes or other search criteria: WHERE ROWID IN...

If the ROWID has changed during the process, it would be disastrous if these processes are written in:

1. Enter the current setting of moving the line

2. turn off the movement of the line during the process

3 re-enable line movement ONLY if it has been activated prior to the start of the process

Tags: Database

Similar Questions

  • allow the movement of the line

    Hi all;

    What is the reason to allow the movement of the line before running the FLASHBACK TABLE operation ?

    to accomplish the Flashback and the database Point-in-time recovery

    • Movement of the line must be activated on the table, which indicates that the ROWID will change after the return of flame occurs.

      This restriction exists because if ROWID until flame is stored by the application, then there is no guarantee that the ROWID will correspond to the same lines after the return of flame. If your application depends on ROWID, then you cannot use Flashback Table.

    HTH,

    Thierry

  • How to move the lob segment in a partitioned table

    My Oracle 11.2, I have a partitioned table that I want to switch to a different tablespace

    After invoking the script, there are still inside for the insensitive lob segment table
    CREATE TABLE BONGO.AAA_3
    (
      ID       NUMBER,
      DATUM    DATE,
      OBJEKAT  BLOB
    )
    TABLESPACE BONGODATA_HUGE
    PCTUSED    40
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    LOGGING
    PARTITION BY RANGE (DATUM)
    (  
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE BONGODATA_HUGE
    LOB (OBJEKAT) STORE AS 
            (   TABLESPACE  BONGODATA 
              ENABLE        STORAGE IN ROW
              CHUNK       8192
              RETENTION
              NOCACHE
              STORAGE    (
                          INITIAL          64K
                          NEXT             1M
                          MINEXTENTS       1
                          MAXEXTENTS       UNLIMITED
                          PCTINCREASE      0
                          FREELISTS        1
                          FREELIST GROUPS  1
                          BUFFER_POOL      DEFAULT
                         )
            )
        PCTUSED    40
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    INITIAL          64K
                    NEXT             1M
                    MINEXTENTS       1
                    MAXEXTENTS       UNLIMITED
                    FREELISTS        1
                    FREELIST GROUPS  1
                    BUFFER_POOL      DEFAULT
                   )
    )
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING;
    How to move this lob segment in a partitioned table?

    or, is there a package for data move in storage?

    concerning

    ALTER TABLE current_table MOVE PARTITION nom_partition
    TABLESPACE destination_table_space
    LOB (column_name) STORE AS (TABLESPACE current_tablespace);

  • How to select and default hightlight the first line in a programmatic Table(ADF Table created based on a SortableModel) ADF.

    Hi all


    We use JDeveloper Studio Edition Version 12.1.3.0.0 and deployed on GlassFish Server Open Source Edition 3.1.2.2 (build 5) and connect to the SQLServer database.


    We created a table ADF programming related to a SortableModel created programmatically to a bean.


    We need to select and highlight the first row in the table just after making it to retrieve data based on the first line.


    We tried the based on the following thread: How to call the bean support just after JSFF / page fragment loads? and a few other posts online, but it does not work very well.


    W has created a hidden text in the bottom of the JSF model as follows:


    < af:table varStatus = "rowStat" Summary = "table" value = "#{pageFlowScope.crudBean.dynamicTable.collectionModel} '"

    Rows = "#{pageFlowScope.crudBean.dynamicTable.collectionModel.RowCount} '"

    contentDelivery = 'immediate' var = 'row' rendered = 'true '.

    Binding = "#{backingBeanScope.crudBackingBean.tasksTable} '"

    selectionListener = "#{backingBeanScope.crudBackingBean.customListener} '"

    "rowSelection ="single"id ="t1"partialTriggers =": pt_gr2 "columnStretching =" column: clmn0 ">

    < af:forEach items = "#{pageFlowScope.crudBean.dynamicTable.columnNames}" var = 'name' varStatus 'vs' = > "

    < af:column sortable = "true" sortProperty rowHeader = "#{name}" = "no style" headerText = "#{pageFlowScope.crudBean.dynamicTable.columnLabel [name]}" "

    inlineStyle = "width: 100px;"  ID = "clmn$ {vs.index}" >

    < af:activeOutputText value = "#{row [name]}" id = "aot1" / >

    < / af:column >

    < / af:forEach >

    < / af:table >

    ....


    < af:outputText id = "hiddenOutputTextId" visible = "false" value = "#{backingBeanScope.crudBackingBean.afterPageLoad} '"

    Binding="#{backingBeanScope.crudBackingBean.hiddenOutputText}"/ >

    And we have added the code to the bean to support below:

    public String getAfterPageLoad() {}

    If (!.) {AdfFacesContext.getCurrentInstance () .isPostback ()}

    selectFirstRowInTasksTable();

    }

    Return afterPageLoad;

    }

    public void selectFirstRowInTasksTable() {}

    try {}

    RKS RowKeySet = new RowKeySetImpl();

    RowKeySet rksEmpty = new RowKeySetImpl();

    Model CollectionModel = tasksTable.getValue ((CollectionModel));

    ROWCOUNT int = model.getRowCount ();

    If (rowcount > 0) {}

    model.setRowIndex (0);

    Key of the object = model.getRowKey ();

    RKS. Add (Key);

    tasksTable.setSelectedRowKeys (rks);

    SelectionEvent selectEvent =

    new SelectionEvent (tasksTable.getSelectedRowKeys (), rks, tasksTable);

    selectEvent.queue ();

    customListener (selectEvent); / / to retrieve data

    AdfFacesContext.getCurrentInstance () .addPartialTarget (tasksTable);

    }

    } catch (Exception e) {}

    }

    }

    I think that () selectEvent.queue; should work even without calling the customerListener, but it is not working in all cases.

    What is the problem in my code?



    Have you tried to bind property of 'selectedRowKeys' to selection configuration / bean there?

    Something like:

    public RowKeySet getSelectedRKS() {
        if (rks == null) {
            // make first record as selected
            // create RowKeySet and assign it to rks variable(where rks is variable defined in bean with some scope higher than request scope)
        }
        return rks;
    }
    

    Dario

  • Need to retrieve the last line/record in a table

    Hello

    I have a requirement like getting the ending balance of the last record in the table and the same insertion in the opening balance of the immediatetly created the next record.

    In simple terms, I need to extract a value from the last line of the recording.

    For example, I use the query below

    Select rownum emp, empno, ename
    where rownum = (select count (rownum) from emp);

    But, the above query does not return all of the recording.

    Therefore, need help on this.

    Kind regards
    Shivakumar has

    Published by: shiva March 27, 2011 22:14

    Hello
    Strictly speaking there is no such LAST or FIRST folder until that order you them.
    But check the following:

    SELECT * FROM emp MINUS
    SELECT * FROM emp WHERE rownum<=(SELECT count(empno)-1 FROM emp);
    

    Kind regards
    Lakshmi.

  • Highlight on the selected line disappear when af:table lose focus?

    Hello

    I have a strange problem:
    I have an af:table select single line based on the VO and an af:inputText in a jsf page.
    When I select a row in the table, then click on in the inputText at the entrance, the highlight on the selected line in the table disappear!
    The currently selected line is always a controlled beans, but it seems that it is not that any line is selected in the user interface.
    Is this a bug of af: table?

    My test page:
    < af:form id = "f1" >
    < af:panelGroupLayout id = "pgl1" layout = "scroll" >
    < af:table value = "#{bindings." Var ViewObj1.collectionModel}"="row ".
    lines = ' #{bindings. " ViewObj1.rangeSize}.
    emptyText = "#{bindings." ViewObj1.viewable? "{'No data to display.': 'Access Denied.'}".
    fetchSize = "#{bindings." ViewObj1.rangeSize}.
    rowBandingInterval = '0 '.
    selectedRowKeys = ' #{bindings. " ViewObj1.collectionModel.selectedRow}.
    selectionListener = "#{bindings." ViewObj1.collectionModel.makeCurrent}.
    rowSelection = "single" id = "t1" >
    < af:column sortProperty = "EmpDeptid" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpDeptid.label}.
    ID = "c8" >
    < af:outputText value = "#{rank." EmpDeptid}"id ="ot3">
    < af:convertNumber groupingUsed = "false".
    model = ' #{bindings. " ViewObj1.hints.EmpDeptid.format}"/ >
    < / af:outputText >
    < / af:column >
    < af:column sortProperty = "EmpHireDate" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpHireDate.label}.
    ID = 'c4' >
    < af:outputText value = "#{rank." EmpHireDate}"id ="ot7">
    < af:convertDateTime pattern = "#{bindings." ViewObj1.hints.EmpHireDate.format}"/ >
    < / af:outputText >
    < / af:column >
    < af:column sortProperty = "EmpId" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpId.label}.
    ID = "c7" >
    < af:outputText value = "#{rank." EmpId}"id ="ot6"/ >
    < / af:column >
    < af:column sortProperty = "EmpJob" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpJob.label}.
    ID = "c1" >
    < af:outputText value = "#{rank." EmpJob}"id ="ot1"/ >
    < / af:column >
    < af:column sortProperty = "EmpLineid" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpLineid.label}.
    ID = "c5" >
    < af:outputText value = "#{rank." EmpLineid}"id ="ot4">
    < af:convertNumber groupingUsed = "false".
    model = ' #{bindings. " ViewObj1.hints.EmpLineid.format}"/ >
    < / af:outputText >
    < / af:column >
    < af:column sortProperty = "EmpSex" sortable = "false".
    headerText = "#{bindings." ViewObj1.hints.EmpSex.label}.
    ID = "c6" >
    < af:outputText value = "#{rank." EmpSex}"id ="ot2"/ >
    < / af:column >
    < / af:table >
    < af:panelFormLayout id = "pfl1" >
    < f: facet = 'footer' name / >
    < af:inputText label = "Label 1" id = "it1" / >
    < / af:panelFormLayout >
    < / af:panelGroupLayout >
    < / af:form >

    Thank you
    660

    Hello

    This seems an expected behavior of the skin of the merger.
    The selected line inactive thoroughly clear yellow that is hard to recognize on some screens.

    solution:
    create a custom look (extend the skin of 'fusion') and create css, like this:
    AF | : the table-row data: selected: inactive af | : given the column cell.
    AF | : the table-row data: selected: inactive af | column: banded-data-cell
    {
    background-color: blue;
    }

    concerning
    Peter

    Published by: hofespet on November 6, 2010 12:45

  • 'allow the movement' in EPMA

    Hello

    In EPMA, is there an equivalent of "Allow moves" construction of Dimension load rules?
    It always creates shared members. I use Interfact Tables and version 9.3.1

    Thank you

    Hello
    You may consider to select 'replace' option "merge". Therotically he must rebuild the dimension based on the structure given in the tables of the interface.

    See you soon,.
    Alp

  • Protect a document while allowing the insertion of data in a table and the points on a graph.

    I created a Word document that contains a table and a chart.  Can I protect document but allow data entry in the table and allow points appear in the table using Adobe?

    Hi brianh89327665,

    While you can apply a permissions password to a PDF file to prevent things such as printing and editing the document, you can not apply it selectively to parts of the PDF file.

    Best,

    Sara

  • Adding cells of the footer line of an object table

    I'm trying to the sum of the values of a column and the display in the footer row but no success, it. Any advice?

    I tried to add the lines individually "cell2 [0] + cell2 [1] + cell2 [2]" and I tried adding the "sum(cell2[*])".

    Here is the updated file...

    https://Acrobat.com/#d=czb6OFGhZF5eJXYHKy0QjQ

    The changes I made were...

    (1) renamed all the lines so they all have the same name "Row1".

    (2) in the case of calculate it, I changed the code a little so it looks like this.

    sum (Table2.Row1 [*]. Cell4);

    Let me know if you have any questions...

    Thank you

    Srini

  • Table of Flashback and the movement of the line!

    Hello Experts,

    I have a doubt in the next box.

    Movement of the line must be activated for all tables to be able to use the Flashback table feature unless you are flashing back the table TO BEFORE DROP . According to my understanding, you can not enable Row movement for a table that is not partitioned. This finish not FLASHBACK table with activated line movement, you can and you can't activate a movement row for a table that is not partitioned.  So, how can I use FLASHBACK table to NOT partitioned table function?

    Please see the error message when I tried to enable ROW movement for a non-partitioned table below.

    SQL error: ORA-14066: illegal option for a not partitioned index organized table

    14066 00000 - "illegal option for a table held in index unpartitioned.

    * Cause: An attempt was made to issue a CREATE or ALTER TABLE

    command on an unpartitioned ITO, but the order contains a

    option that is legal only for partitioned tables organized by index.

    These options are: ENABLE ROW MOVEMENT and DISABLE ROW.

    Thank you

    No - your question is about FLASHBACK and IOT.

    So, how can I use FLASHBACK table to NOT partitioned table function?

    I have already posted the link to doc as telss you that you cannot enable row movement for a not partitioned IOT.

    View sample data for this table (in the form of INSERT statements) and queries, DML and FLASHBACK that you try to use this table that is a failure.

  • Disable LOGGING for partition table based on the automatic INTERVAL

    Hello

    I created a database table of paritioned range interval with NOLOGGING as the default attribute for the table as well as the tablespace definition.

    When ORACLE automatically creates a new partition for this table, it activates the LOGGING for this automatic partition even if the table definition says anything else.

    How can I go about changing this behavior? Is it still possible?

    FYI my platform is 11 GR 1 (11.1.0.7) material on SUN SOLARIS 10 SPARC.

    Any help will be appreciated.

    Right, so refer to a new feature of Oracle 11 g partitioning called 'partitioning interval. "

    +"+
    + The interval partitioning: A new strategy of partitioning in Oracle Database 11g, +.
    + Interval partitioning extends the functionality of the method range to define equipartitioned +.
    + ranges using a definition of the interval. Rather than specify individual +.
    + going to explicitly, Oracle will create any partition automatically as needed.
    + every time the data of a partition are inserted for the first time. Interval +.
    + a lot of partitioning improves maneuverability of a partitioned table. For +.
    example, + a partitioned table interval could be set so that Oracle creates a +.
    + new partition for each month in a calendar year; a partition is then automatically +.
    + created for "September 2007" as soon as the first record in this month is inserted.
    + in the database. +
    + The techniques available for a partitioned table interval are interval, interval-+.
    + List, range-Hash, and interval range. +
    +"+

    In order to disable interval partitioning on the transactions table, use:
    
    ALTER TABLE transactions SET INTERVAL ();
    

    http://download.Oracle.com/docs/CD/B28359_01/server.111/b32024/part_admin.htm

    Disable partitioning interval on this table, create a procedure to run every day we'll say, to create a new partition and chop the old partition of the appropriate table. I presume that the automatic partitioning interval creates the partition with the logging by default option without checking the parameters in the table. I have seen no information on this in the Oracle documentation.

    Hope that helps.

    Ogan

  • Local primary key on reference partitioned Table

    Oracle running on Red Hat Linux Rel6 11.2.0.3.

    I'm on a closed network, so the following must be typed manually.

    I have a table of documents which is essentially the following:

    (entire annual <-primary key)

    whole Source_ID,

    load_dt date,

    date of doc_dt,

    doc_info clob,

    ...)

    which is partitioned on column source_id.

    I created a partitioned table of reference as follows:

    create table doc_entities_prt)

    whole doc_entity_id

    all annual,

    whole entity_id,

    forced doc_ent_fk (annual) references to documents (annual)

    tablespace...

    allow the movement of the line

    benchmark score (doc_ent_fk);

    The annual column in the child table is not unique.  The doc_entity_id column is unique.  I want to set the primary key on doc_entities_prt as a local index on the doc_entity_id column.  I was not able to find the proper syntax to get there, and now I'm wondering if this is even possible? Any ideas appreciated.

    Oops, I missed part that you want to base the PK of this index. No, it is not possible and has nothing to do with the partitoning reference. A unique index can be partitioned only if it includes a partitioning column. You can create a non-unique without partitioning column partitioned index, but then you can't create PK supported by such an index for the same reason - oracle would not be able to verify uniquenes based on this index partition and controls of the cross-partition are not supported:

    SQL > create table documents)
    2 whole annual,
    3 whole source_id,
    load_dt date 4.
    date of doc_dt 5.
    6 doc_info clob
    7                        )
    8 partition by range (source_id)
    9      (
    10 partition p1 values less than (10),
    11 partition p2 values less than (100)
    12)
    13.

    Table created.

    SQL > create index unique documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.
    on documents (annual)
    *
    ERROR on line 2:
    ORA-14039: partitioning columns must be a subset of the columns of a unique key
    index

    SQL > create index documents_pk
    2 on documents (annual)
    (3) local
    partition 4 p1,
    5 partition p2
    6         )
    7.

    The index is created.

    SQL > alter table documents
    2 Add the constraint documents_pk
    3 key (annual) elementary school
    4 using index documents_pk
    5.
    change the documents table
    *
    ERROR on line 1:
    ORA-14196: specified Index cannot be used to apply the constraint.

    SQL >

    SY.

  • Converts the ref cursor effect of function table

    I have a function named fn_get_emp(), whose return type is sys_refcursor. When I select fn_get_emp of double; I get the output to the format of the cursor. I want to convert to the table like format so that I can use in my insert statements insert into foo select * from fn_get_emp();

    Please note that the columns in the output of the fn_get_emp() is not fixed.

    Published by: user10566312 on January 30, 2012 22:25

    Here are the steps in the package DBMS_SQL, you need to turn your Ref Cursor a cursor DBMS_SQL.

    http://docs.Oracle.com/CD/E11882_01/AppDev.112/e25788/d_sql.htm#CHDJDGDG

    and then the rest of the documentation of the DBMS_SQL package gives many examples of how to treat this a cursor dbms_sql.

    Here is an example to use the package dbms_sql to process a request and produce some projection of sql and the database is in the query to CSV file...

    As user sys:

    CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles'
    /
    GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser
    /
    

    As myuser:

    CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2
                                         ,p_dir IN VARCHAR2
                                         ,p_header_file IN VARCHAR2
                                         ,p_data_file IN VARCHAR2 := NULL) IS
      v_finaltxt  VARCHAR2(4000);
      v_v_val     VARCHAR2(4000);
      v_n_val     NUMBER;
      v_d_val     DATE;
      v_ret       NUMBER;
      c           NUMBER;
      d           NUMBER;
      col_cnt     INTEGER;
      f           BOOLEAN;
      rec_tab     DBMS_SQL.DESC_TAB;
      col_num     NUMBER;
      v_fh        UTL_FILE.FILE_TYPE;
      v_samefile  BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file);
    BEGIN
      c := DBMS_SQL.OPEN_CURSOR;
      DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE);
      d := DBMS_SQL.EXECUTE(c);
      DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
      FOR j in 1..col_cnt
      LOOP
        CASE rec_tab(j).col_type
          WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
          WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val);
          WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val);
        ELSE
          DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
        END CASE;
      END LOOP;
      -- This part outputs the HEADER
      v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767);
      FOR j in 1..col_cnt
      LOOP
        v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),',');
      END LOOP;
      --  DBMS_OUTPUT.PUT_LINE(v_finaltxt);
      UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
      IF NOT v_samefile THEN
        UTL_FILE.FCLOSE(v_fh);
      END IF;
      --
      -- This part outputs the DATA
      IF NOT v_samefile THEN
        v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767);
      END IF;
      LOOP
        v_ret := DBMS_SQL.FETCH_ROWS(c);
        EXIT WHEN v_ret = 0;
        v_finaltxt := NULL;
        FOR j in 1..col_cnt
        LOOP
          CASE rec_tab(j).col_type
            WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val);
                        v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
            WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val);
                        v_finaltxt := ltrim(v_finaltxt||','||v_n_val,',');
            WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val);
                        v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),',');
          ELSE
            v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
          END CASE;
        END LOOP;
      --  DBMS_OUTPUT.PUT_LINE(v_finaltxt);
        UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
      END LOOP;
      UTL_FILE.FCLOSE(v_fh);
      DBMS_SQL.CLOSE_CURSOR(c);
    END;
    

    This allows the header line and the data to write into files separate if necessary.

    for example

    SQL> exec run_query('select * from emp','TEST_DIR','output.txt');
    
    PL/SQL procedure successfully completed.
    

    Output.txt file contains:

    empno,ename,job,mgr,hiredate,sal,comm,deptno
    7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20
    7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30
    7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30
    7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20
    7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30
    7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30
    7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10
    7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20
    7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10
    7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30
    7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20
    7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30
    7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20
    7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10
    

    The procedure allows for the header and the data to separate files if necessary. Just by specifying the file name "header" will put the header and the data in a single file.

    Adapt to the exit of styles and different types of data are needed.

  • Collection of statistics on partitioned and non-partitioned tables

    Hi all
    My DB is 11.1

    I find that the collection of statistics on partitioned tables are really slow.
    TABLE_NAME                       NUM_ROWS     BLOCKS SAMPLE_SIZE LAST_ANALYZED PARTITIONED COMPRESSION
    ------------------------------ ---------- ---------- ----------- ------------- ----------- -----------
    O_FCT_BP1                        112123170     843140    11212317 8/30/2011 3:5            NO                    DISABLED
    LEON_123456                      112096060     521984    11209606 8/30/2011 4:2           NO                   ENABLED
    O_FCT                           115170000     486556      115170 8/29/2011 6:3            YES         
    
    SQL> SELECT COUNT(*)  FROM user_tab_subpartitions
      2  WHERE table_name =O_FCT'
      3  ;
    
      COUNT(*)
    ----------
           112
    I used the following script:
    BEGIN
      DBMS_STATS.GATHER_TABLE_STATS(ownname          => user,
                                    tabname          => O_FCT',
                                    method_opt       => 'for all columns size auto',
                                    degree           => 4,
                                    estimate_percent =>10,
                                    granularity      => 'ALL',
                                    cascade          => false);
    END;
    /
    It costs 2 minutes for the first two tables to gather statistics respectively, but more than 10 minutes for the partitioned table.
    Time of collection of statistics represents a large part of the time of the whole lot.
    Most of the work of the lot are at full load, which case all partitions and subpartitions will be affected and we cannot collect just specified partitions.

    Does anyone have experiences on this subject? Thank you very much.

    Best regards
    Leon

    Published by: user12064076 on August 30, 2011 01:45

    Hi Leon

    Why don't collect you statistics to the partition level? If your data partitions will not change after a day (score range date for ex), you can simply do to the partition level

    GRANULARITY-online 'SCORE' for partition level and
    GRANULARITY-online 'SUBPARTITION' for subpartition level

    You collect global stats whenever you can not require.

    Published by: user12035575 on August 30, 2011 01:50

  • A few reasons why we should allow no movement of the row of a table?

    I'm curious to know if there is a reason why we should not allow movement row for a given table request?

    A lot of features like the return of flame, etc. requires movement line is activated?

    are there specific situations that we should not do. I talk about this in general, but if you ask for the specific oracle version, it is oracle 11.2.0.3

    THX

    Delphine

    It seems that Jonathan Lewis is interested also:

    Movement of line | Notebook of the Oracle

Maybe you are looking for