Rows in the table LT until merger of all workspaces

Database 11.2.0.4

In our environment, we ran a few important updates in the workspaces and then merged these live workspaces.  Up to 25% of the data has been updated in those workspaces.  When these update batch workspaces have been created, previous workspaces exist who are not yet ready for the merger.

I noticed that the underlying tables of the LT now have about 25% more lines than the live view.  We have now discovered that dbms_wm.refreshWorkspace works really poor.  This statement is used to take seconds or minutes to the maximum, but can now take half an hour or more.

We recorded a support with Oracle request and provided details of the plan to see if we can get some resolution/advice explaining.

In the meantime, I have a question for the forum help my understanding of the works of the Manager of the workspace.

In the example below, I have table "wm_test_table", "test_workspace1" and "test_workspace2".  In "test_workspace1", I update all rows in the table - the table LT now has 2 rows for each record.  I merge 'test_workspace1' live and LT still has 2 rows for each record.  The other lines are not removed until "test_workspace2" is merged and removed.


SQL> -- Create a test table
SQL> create table wm_test_table (
  2     id integer primary key,
  3     name varchar2(100));


Table created.


SQL> -- Insert 1,000 rows
SQL> insert into wm_test_table (
  2     select rownum, 'before'
  3     from dual
  4     connect by level <= 1000);


1000 rows created.


SQL> commit;


Commit complete.


SQL> -- Version enable it
SQL> execute dbms_wm.enableVersioning('wm_test_table');


PL/SQL procedure successfully completed.


SQL> -- Create two workspaces
SQL> execute dbms_wm.createWorkspace('test_workspace1');


PL/SQL procedure successfully completed.


SQL> execute dbms_wm.createWorkspace('test_workspace2');


PL/SQL procedure successfully completed.


SQL> -- Go to test_workspace1 and update all the rows
SQL> execute dbms_wm.goToWorkspace('test_workspace1');


PL/SQL procedure successfully completed.


SQL> update wm_test_table set name = 'after';


1000 rows updated.


SQL> commit;


Commit complete.


SQL> -- Check how many rows in wm_test_table_lt - we expect 2,000 as we haven't merged yet
SQL> select count(*) from wm_test_table_lt;


  COUNT(*)
----------
      2000


SQL> -- Merge and remove test_workspace1
SQL> execute dbms_wm.goToWorkspace('LIVE');


PL/SQL procedure successfully completed.


SQL> execute dbms_wm.mergeWorkspace('test_workspace1', remove_workspace=>true);


PL/SQL procedure successfully completed.


SQL> -- Check how many rows in wm_test_table_lt
SQL> -- I'd hope there'd only be 1,000 but there is 2,000
SQL> select count(*) from wm_test_table_lt;


  COUNT(*)
----------
      2000


SQL> -- Let's see if compressWorkspace will get rid of them
SQL> execute dbms_wm.compressWorkspace( -
>       workspace => 'LIVE',   -
>       auto_commit => true,   -
>       remove_latest_deleted_rows => true);


PL/SQL procedure successfully completed.


SQL> -- They're still there
SQL> select count(*) from wm_test_table_lt;


  COUNT(*)
----------
      2000


SQL> -- Now merge test_workspace2
SQL> execute dbms_wm.mergeWorkspace('test_workspace2', remove_workspace=>true);


PL/SQL procedure successfully completed.


SQL> -- and the additional 1,000 rows are removed
SQL> select count(*) from wm_test_table_lt;


  COUNT(*)
----------
      1000

Is it possible to safely remove the extra lines in LT without waiting until we merged the workspaces that existed before the update batch has been done?  I hope that it will so improve the performance of refreshWorkspace.


I thought that something like this can do, but it does not remove the other ranks, is:

execute dbms_wm.PurgeTable(
 table_id => 'test.wm_test_table', 
 archive_table => null, 
 where_clause => 'id not in (select id from test.wm_test_table)', 
 instant=>null, 
 workspace => 'LIVE', 
 purgeAfter => false);

This question is similar to

Lines left in the table LT after removal of the direct workspace and the removal of all workspaces

and

How to delete soft deleted records?

but I'm still not sure.

Thank you

John

Hello

This behavior is expected and it is due to the test_workspace2 workspace.  A compression operation will not allow compressed range to include a backup implicit point that is created for a child workspace.  This is done to preserve the integrity of this workspace.  The initial 1000 lines are all lines that are visible from test_workspace2.  Removal of these lines would leave test_workspace2 will 0 lines in there.  Lines 1000 updates are the lines that do not appear on LIVE.  So, given that the two sets of lines are needed, none of the lines can be deleted physically.  A compression operation will never change the view of data for any workspace.  It only removes the unnecessary records.  The two options in order to be able to compress these lines is to either delete (as you did) or refresh test_workspace2.  The refresh operation would move the implicit savepoint for the workspace to a version that isn't after all 2000 lines in the table _LT and allow the dressing to remove first half of them because they are no longer needed by any child workspace.

With respect to the performance of RefreshWorkspace, I would need to see a trace of the transaction file.  But who should rather get through the SR you filed.

Kind regards

Ben

Tags: Database

Similar Questions

  • Why a whole page of rows in the table is duplicate in FrameMaker 10?

    I have a long table in one of my chapters in FrameMaker 10. The table is seven pages long, but a whole page of dollars of rows in the table is duplicated, if the table really should only be six pages long. The first four pages look like this:

    Page 1: Lines 1-7

    Page 2: Lines 8-16

    Page 3: Lines 8-16

    Page 4: Lines 17-28

    Headers and footers are completely unaffected. All the markers from index in the rows of the table are also doubled, so all of the Page 3 index markers are also appearing in the IX file. I've combed through the file on unresolved references, but I can't find. Also, if I insert a blank line in Page 2, all lines is duplicated is no longer. If I insist on the entire table, Page 2 does not seem to be highlighted. I can't select or change anything on the Page 2.

    I'm absolutely baffled why this is happening. A glimpse of what is causing this rowset ghosts to appear?

    Some ideas to play with:

    • Did you wash MIF file to clean small codes that may have been imported?
    • Have you checked the duplicate lines to check that they are defined in the body and not header?
  • ExportCollectionAction causes the current values of lines to be copied into the first row of the table

    Greetings experts,

    I use JDev 11.1.2.3

    I am faced with a really strange behavior of the exportCollectionActionListener. I have a table for each row in this table, a link that calls a popUp. This popUp tells the story of this selected save changes (means it displays data from a different table/VO, who keeps a history of the first) in a table. I have a button that calls the exportCollection for this second table. When I press on it, an excel file is generated and downloaded and everything is perfect until now. If there was not any which record in this table, and o back to the first, by pressing the button send is not track all changes. But if there where all records from this table of history (always talking about the history of the current line), go back to the first and press on submit, that the very first line of the table of fir trees, gets all of it's values as the last row of the second table, as it is copied from one to the other. I have to press on restore back to normal (note that the popUp has it's CancelListener to call a restore of a bean to support operation).

    Why is this happening?

    Thanks in advance

    I found a work around for this problem.

    I added the code that causes the whole view Refresh (ie: the whole page), the popUp cancelListener, also I changed the commandLink partialSubmit property and set it to true. It's not like totally cool watching the screen charge for this fragment of a second after the closure of the pop-up window, but it not the drill.

  • Problem with the removal of the first row of the table

    Hi all

    I have a problem with my forms with tables where I have buttons to add or remove rows from the table. Adding the lines works fine but deleting lines has a problem when deleting the first row. Example: Here is a table with two rows where column 1 has the add and remove buttons and column 2 user imput that looks like this:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 2
    Add and remove buttons hererank 3

    If the user deletes line 2 the table looks like which is correct:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 3

    If the user deletes line 1 then the table looks like which is false since the ranks 2 and 3 should be left:

    Column 1
    Column 2
    Add and remove buttons hererank 1
    Add and remove buttons hererank 3

    The code is pretty simple:

    Table3.row2.instanceManager.addInstance (1); for the click event of the button Add line

    Table3.row2.instanceManager.removeInstance (1); for the click event of the button Delete line

    What I am doing wrong?

    Thanks in advance!

    Al

    The expression will be based on your structure... done .This refers to the current object, parent refers to the container parent of this object and index is the index of this object. So watching your hierarchy and from the key, you will need this.parent to join the line subform is it in (usually it is th esubform that repeats). If it's in a subform, you will need to add another parent. Continue on this road until you get to the repeating subform and then ask its index. Your expression might look like this.parent.parent.parent.index. Using this.index, you find the instance of the button object and there are just people and that's why you always get 0.

    Make sense?

    BTW your form is attached not... so I can't check what you should put it.

    Paul

  • Remove the checksum of each row in the table

    Hallo

    I got out as table and since I have just read the data with the checksum

    For example, I have to neglect the last 2 bytes in each row of the table. I tried several times but I can't succeed. It would be nice if someone help me to go around this problem.

    thanking you

    Best regards

    Karine

    Hi Karine,.

    have you tried really 'several times' to remove the last two characters of each string? Using an autoindexing FOR loop?

  • Hide columns in Table B, based on values LOV in another row of the table:

    Hello

    Jdev 12.2.1.0

    I have two tables A and B and I hide columns b based on the value of row of table A LOV. For example, I have a line in A table that has a column with the x, y, z values lov. Now, if I select the row in the table has and change the LOV to x, I had to hide some of the columns in the table (B) is there a way to get this feature? Any help would be appreciated.

    Thank you

    Assume:

    1 table a call "DepartmentId" column this column has LOV.

    B 2-table a column "ColumnInB" this column will be visible depending on the value of "DepartmentId".

    Try to do the following:

    1 - from data controls, drag "DepartmentId" attribute and drop it on the page as inputText then together make this inputText to false (you can remove it, but don't forget the corresponding binding in pageDef. not deleted).

    2. copy the value of the inputText which will be as "#{bindings." DepartmentId.inputValue}"and go to the"ColumnInB"column and visible property beyond the copied value.

    3 - the ColumnInB visible will be the condition as:

    4-set DepartmentId autoSubmit = 'true '.

    5-set table partialTriggers table B has id and id of DepartmentId LOV

  • number of rows in the table

    Hi master,

    I have a requirement. During the passage of a table, I need to get the number of rows in this table. Sometimes, when I spend 2 or more table names, I need to get the same count of result of lines. I got the below function. but it shows all the rows in the table. I want pariticular tabels only. How I can I get it.

    Select table_name, num_rows from all_tables where table_name in ('EMP', 'Department');  I tried.  I need to a procedure or function. who will pass the name of the table as a parameter and 1 or more than the name of a table if I pass, I need to display information from table name and number of lines.

    CREATE OR REPLACE

    TYPE t1_obj AS OBJECT)

    table-name VARCHAR2 (30),

    CNT NUMBER

    )

    /

    CREATE OR REPLACE

    TYPE t1_obj_tbl AS THE t1_obj TABLE

    /

    CREATE OR REPLACE

    FUNCTION (f1)

    p_schema_name VARCHAR2

    )

    RETURN t1_obj_tbl

    PIPELINED

    IS

    v_retval t1_obj: = t1_obj (null, null);

    BEGIN

    FOR v_rec IN (SELECT table_name FROM dba_tables where owner = upper (p_schema_name) and nvl (iot_type, 'X')! = "IOT_OVERFLOW") LOOP

    v_retval.table_name: = v_rec.table_name;

    RUN IMMEDIATELY "SELECT COUNT (*) FROM" | p_schema_name | '.' || v_rec.table_name

    IN v_retval.cnt;

    PIPE ROW (v_retval);

    END LOOP;

    RETURN;

    END;

    Select * from table (f1 ('scott'));

    The above function returns information from the table in SCOTT scheama. I need only perticular table info.

    Please notify.

    AR.

    Hi Sven,

    Front end people ask me the requirement. They wanted a proc or function as I want.

    Please help me.

    Concerning

    AR

  • I have a table of the adf, I added a column that contains a button that I created, when I click it must remove this row in the table, but it is not, please help

    I have a table of the adf, I added a column that contains a button that I created, when I click it must remove this row in the table, but it is not, please help

    I don't understand. You use vo and eo for you to use business components.

    Again, this kind of code call in trouble.

    You must post the changes to make them visible to the eo find vo. You must then run the query for the changes in the business layer strips then you must update the iterator he table is based on.

    In your code I see that happen, hooch maybe because it is more often than not formatted and undocumented.

    My advice is to do a small test case that you can manage with easy sql. Once you get it to run transfer you the results to the actual application.

    Timo

  • Exception of null on the list pointer implementing values when there are n rows in the table

    Hi Experts,

    I use JDev 11.1.1.7.

    I have a VO that I defined a LOV with no search box. In my page, I've added it as af:inputListOfValues, but when there is no rows in the table that I will meet with NPES

    < AdfcExceptionHandler > < handleException > ADFc: when Manager application exception exception handling threw a new exception.

    java.lang.NullPointerException

    at oracle.jbo.uicli.binding.JUCtrlListBinding.findOrCreateLOVDialogIteratorBinding(JUCtrlListBinding.java:5188)

    at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding.getSearchBinding(FacesCtrlLOVBinding.java:204)

    to oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding$ ListOfValuesModelImpl.getSearchRegion (FacesCtrlLOVBinding.java:2001)

    to oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding$ ListOfValuesModelImpl.getQueryModel (FacesCtrlLOVBinding.java:1612)

    to oracle.adfinternal.view.faces.renderkit.rich.SimpleInputListOfValuesRendererBase$ InternalLaunchPopupListener.processLaunch (SimpleInputListOfValuesRendererBase.java:1560)

    at oracle.adf.view.rich.event.LaunchPopupEvent.processListener(LaunchPopupEvent.java:108)

    Excerpt from JSFF:

    < af:inputListOfValues id = "xxx" popupTitle = "" search and select: XXX ""

    simple value = "#{pageFlowScope.SearchBean.xxx}" = 'true' "

    model = ' #{bindings. " XXXLOV.listOfValuesModel} "columns ="30"

    searchDesc = "Select XXX" >

    < / af:inputListOfValues >

    PageDef:

    < listOfValues StaticList = 'false' use = "LOV_XXX".

    IterBinding = "XXXIterator".

    ID = "XXXLOV" / >

    Is - this bug?

    Surprisingly, it works very well if there are lines in the table that the VO is querying.

    -Soham

    Soham,

    I think you just create this LOV page by simply moving the VO, right?

    You can select the box to tick 'Include no. Selection' in your VO, and see if that helps?

    See you soon

    AJ

  • problem of adjustment of height of the rows in the tables in CS6

    I read all the debates devoted to setting the height of the rows in the tables and I can't find the answer to my problem.

    I placed a table that was created in Word.  I've done several times, but now I can not adjust the heights of less than 5mm line without losing the text in the line.  I went up to line on "exactly".  As soon as I try to reduce the height of the text disappears, but there is plenty of space above and below the text.   Hoping someone can help.

    Check the cell INSET on the cell options.

  • ADF: Double in taskflow Page Navigation click on the row in the table on the page .jsff

    Hi all

    My 11.1.1.7 Jdev.

    I have a taskflow with two fragments (.jsff) pages. On the first page, I have a table when I double click on the row in the table that I want to go to the next page.

    I tried to call java script but I do not understand. How can I get it?

    handleNavigation is the only thing that you should not use in the adf. Read 'How to navigate in the stubborn workflow' in this http://www.oracle.com/technetwork/developer-tools/adf/learnmore/nov2010-otn-harvest-190744.pdf.

    Timo

  • Select the row in the table to change in a form

    Hi all

    I use Jdeveloper 12.1.3.0.0 on windows internet explore 10.

    I have the following form and the read-only table. the form and the table that are both on the same object from view.

    click_edit.png

    When the user clicks a row in the table, I want to choose this line in the form above for editing purpose.

    How would I do that? the first column of the table is a primary key.

    I followed shayjdev vedio http://www.youtube.com/watch?v=e0IcnXLJUgU

    but the problem is that when I click the button CreateInsert (5th button left in my case), never clear the form for the opening of new record, instead, he put the table in input mode.

    kindly help me with this.

    Thank you.

    To create a new line, you drag the operation createInsert of the data control on the create new"" button. This should create the new row.  If you like the new line being the last of them using the link from dvohra21 to https://blogs.oracle.com/jdevotnharvest/entry/how_to_add_new_adf

    In this case, you must change the listener to the button action to point to the generation of listener action code of Frank.

    Timo

  • How to capture what oracle object delete rows in the table?

    Hi all

    I have a table in which I am storing data deleted from the main table. I have a delete on the main table statements in the various packages, now I want to capture what sql statement what package is remove rows from the table. I created the trigger to insert data into the backup table. I'm using oracle 11g.

    Please help me...

    Thanks and greetings

    Vidyasagar.B

    You can use DBMS_UTILITY.FORMAT_CALL_STACK.
    
    SQL> create table t
      2  (
      3    no integer
      4  );
    
    Table created.
    
    SQL> create table t_log
      2  (
      3    str clob
      4  );
    
    Table created.
    
    SQL> create or replace trigger t_trig before insert on t
      2  begin
      3     insert into t_log(str) values (dbms_utility.format_call_stack);
      4  end;
      5  /
    
    Trigger created.
    
    SQL> create or replace procedure p
      2  as
      3  begin
      4    insert into t (no) values (1);
      5  end;
      6  /
    
    Procedure created.
    
    SQL> create or replace package pkg
      2  as
      3     procedure run;
      4  end;
      5  /
    
    Package created.
    
    SQL> create or replace package body pkg
      2  as
      3     procedure run
      4     is
      5     begin
      6       p;
      7     end;
      8  end;
      9  /
    
    Package body created.
    
    SQL> exec pkg.run
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from t_log;
    
    STR
    --------------------------------------------------------------------------------
    ----- PL/SQL Call Stack -----
      object      line  object
      handle    number  name
    3abbbc6d8         1  anonymous block
    3ad03bf88         2  KARTHICK.T_TRIG
    3a51a18a8         4  procedure KARTHICK.P
    3ac4f1508         6  package body KARTHICK.PKG
    3ac91c250         1  anonymous block
    
  • Cannot get rid of the gaps between the rows in the table with the basic HTML in DW cc 2015

    Hi gang

    I haven't used html in ages and doing something basic without css... but for some reason any I get these gaps between the rows in the table, no cause I do.

    what I am doing wrong?

    < ! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 / / IN" "http://www.w3.org/TR/html4/strict.dtd" > ""

    < html >

    < head >

    < meta http-equiv = "Content-Type" content = text/html"; Charset = UTF-8 ">"

    < title > Untitled Document < /title >

    < / head >

    < body >

    < table width = "560" >

    < /table >

    < table width = "560" border = "0" align = "center" cellpadding = "0" cellspacing = "0" >

    < tbody >

    < b >

    < td colspan = "3" > < img src = "images/AAA - ADE_01.jpg" width = "560" > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_02.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_03.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_04.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_05.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_06.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_07.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_05.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_06.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_07.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_08.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_09.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_10.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_11.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_12.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_13.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_14.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_15.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_16.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_17.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_18.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_19.jpg" height = "267" / > < table >

    < b >

    < td width = "209" > < img src = "images/AAA - ADE_20.jpg" height = "267" / > < table >

    < td width = "158" > < img src = "images/AAA - ADE_21.jpg" height = "267" / > < table >

    < td width = "193" > < img src = "images/AAA - ADE_22.jpg" height = "267" / > < table >

    < /tr >

    < / tbody >

    < /table >

    < / body >

    < / html >

    Add this in thesection of your page

  • Rows in the table are break on separate pages...

    I have 20 lines equipped table:

    first 3 lines are on one page, then half of the page is empty hen remaining 17 rows is on the second page.

    How can I keep table to break the lines. I want all rows in the table to succeed himself.

    Help, please. Thank you.

    Keep them with parameters are in the table > Format > Format line...

    Note: the first row on the second page may also have a start parameter that indicates that it is at the top of a page or column.

    The control of widows and orphans just specifies how many rows to keep together (widow is the first page; ( orphan , is the second page) when a table has over a page. The higher the number, the more lines are forced to remain together.

Maybe you are looking for