Stepping through table is very slow

LV 7.0 on Win 2K
I use a table to display records of information. The table is filled once at entry to a user interface subprogram and the user has the possiblity to select certain records by clicking or stepping through with the cursor buttons.
I have also written subprograms to sort the table by the various columns. The active row is used to provide more information e.g. displaying it in an image.
Usually you would click on a line with the mouse, but somtimes it is more convenient to step through subsequent lines with the cursor buttons.
As it turned out the latter is sometimes very slow.
I tried to trace that behaviour in my program, but it seems that the problem is within labview. I reduced the vi to a simple loop
where nothing is done with the table except to display the value. If you click on a line the value will follow instantaniously. If you click on a line at the top of the table and then step down with the cursor buttons the value will also follow very quickly. But when you do the same while beeing at the bottom this will take several seconds.
I read several entries in the forum that describe similar problems when updating the table. Please note that this is a very static table here. The only thing that is happening, is a user interacting with it with the keyboard.
The answers I saw so far, suggesting to keep the table small, or switching to other indicators etc. seem to overlook the reason why to use the table; that is tp have a compact display of a lot of ordered information. If the reason is really within LV runtime. Than NI has a nice task to improve LV next time :-(
Gabi
7.1 -- 2013
CLA
Attachments:
Tableaccess.zip ‏65 KB

Unfortunately, I can confirm that LabVIEW 7.1 shows the same slow behavior. Actually pressing "down arrow" on my rig is so slow, it seems to lock up the PC. (W2k)
Interestingly, if you capture the "up" and "down" arrows with a filter event, there is no slowdown! Maybe you can used the attached rough draft (LabVIEW 7.0) to improve the UI experience to the user until NI fixes the issue.
Enjoy!
LabVIEW Champion . Do more with less code and in less time .
Attachments:
Tableaccess.vi ‏266 KB

Similar Messages

  • Speed through WRT54G is very slow

    Hello ,
    I am using  WRT54G linksys router. When connwcted through the router my download speed is very  slow(~700K). If i plug in the LAN calble directly to my laptop the speed is ~4M
    I am using only filter by MAC address.
    Amy help will be appreciated.

    That speed that you posted with the router was that with a wired connection or wireless? Post also the speed test results if your computer is connected wired to the router and as well as the wireless connection. Also check the network speed. What is the speed that you are getting with your wireless network connection (link speed)?

  • File Transfer through ActiveSync is VERY slow in WinCE 7 (on the same device with WinCE 6.0 the speed is normal)

    Hello!
    I met with very strange activesync behaviour. We ported our bsp (based on smdk6410) from WinCE 6.0 to WinCE 7.0. the problem is that WinCE 7.0 copy files from desktop computer into device through ActiveSync (or WMDC) very slowly. With WinCE 6.0 this was
    much faster (with WinCE 7.0 the speed becomes slower many times). I tried the same files. I tried different desktop OS - XP, Windows 7, Windows 8. The result is same. The hardware of the device is the same for both WinCE 6.0 and WinCE 7.0. The bsp in general
    is the same too. The file is transfered slowly from desktop into WinCE 7.0 device in both cases - through ActiveSync gui and through Rapi api using our software.
    Note, that our bootloder transfer OS image via RNDIS with the same speed as using WinCE 6.0. So looks like the problem in WinCE 7.0 in USB serial or in ActiveSync desktop or device sides...
    In addition!!! The very strange thing is that I found only two cases when WinCE 7.0 transfers file through activesync with the same speed as in WinCE 6.0 (with fast speed):
    1. When I transfer from desktop OS that is XP installed on Virtual Machine (using VMware). However the speed is normal only with XP on VMware. I tried with Windows 8 on VMware and the speed was slow too.
    2. It's very interesting fact. When I press Sync button in desktop ActiveSync dialog the trasfer becomes normal (fast)! during time when activesync is performing synchronization. When synchronization finished the speed looks slow again... So when I press
    Sync button all the time when a file is transfered - a file is loaded into desktop fast (the time is the same as using WinCE 6.0...) This behaviour occurs for all desktop OS.
    Note that the problem is actual only for trasferring from desktop into device. WinCE 7.0 trasfers files from device into desktop normal.
    Can somebody describe that?
    Thanks!

    Which version of SuSE Linux would possibly help here. I'm using version 7.3 Pro and it is only 10 minutes slower than my installation on XP Pro (the script is 16 pages long and takes 8,000,000 records and converts them into 30,000 records of useful information-takes 20 minutes in XP, 30 minutes in SuSE 7.3 on a personal computer). I used the orarun9i script and followed the directions for re-compiling the genclntsh from the SuSE installations online.

  • Adding a new column to a big table is very slow

    All,
    I am trying to add a column to a table with defaul value as 0. The table has about 15M rows. The alter table statement is extermely slow.
    I am using 11.1.0.7 on windows.
    Thanks in advance

    Please be careful when using this new 11g feature that can add columns to tables without updating each row. If you use a default value on a new not null column, update triggers that reference that column's :new value could have problems. There is a bug that has been around for at least 3 years that Oracle claims is "not a bug" that could cause problems in your triggers.
    The issue is that triggers will still see null for the :new.column value even though it has a not null default. Even though you can select from the table and the results will show the default value, which it pulls from the data dictionary, the trigger cannot handle it. It appears to pull the value from the data block, not the data dictionary. So if it has never been updated, those two values will be out of synch. The fix, shown below, it to update each row.
    For example, in 11.2.0.2:
    1. Create a new table, insert one row, and add a new column (not null, with default value):
    create table t (c1 number, c2 number);
    insert into t values (1,1);
    alter table t add (c3 number default 0 not null);Select from it and everything looks fine. The value for C3 is 0, my default. Perfect.
    SQL> select * from t;
            C1         C2         C3
             1          1          0My new column C3 looks fine. Even though that row was never updated, my query pulled the default value of 0 from the data dictionary. Great!
    But now add a simple trigger:
    create or replace trigger t_bur_tr
    before update on t for each row
    begin
      :new.c3 := :new.c3;
    end;
    /I am updating C1, one of my original columns. The trigger looks at the new value of C3 anyway, but because I am not updating it, it should equal its existing value. But this is what I get:
    SQL> update t set c1 = 9999 where c1 = 1;
    update t set c1 = 9999 where c1 = 1
    ORA-01407: cannot update ("AMARTIN"."T"."C3") to NULL
    SQL> The workaround is to update every row. (Defeating the purpose of the cool new 11g feature that can supposedly add columns without updating each row.)
    SQL> update t set c3 = c3;
    1 row updated
    SQL> commit;
    Commit complete
    SQL> select * from t;
            C1         C2         C3
             1          1          0
    SQL> update t set c1 = 9999 where c1 = 1;
    1 row updated
    SQL> select * from t;
            C1         C2         C3
          9999          1          0 Now it works as expected.
    Just a heads-up on this unexpected feature. Not a bug? Sure looks like one to me.
    Edit: Appears to be fixed in 11.2.0.3

  • Deletion of data from a 56 GB table is very slow

    Hi All,
    I want to delete some old data from a table in orcale 10g.
    Plz could anyone suggest , how to improve the deletion process???
    Thnaks & Regards.
    Ram

    marcinp1 wrote:
    What kind of problems do you expect after re-use of that space ?
    I can see only problem with clustering factor changes after reusing space but that change can go into both direction - it can be better or worse clustering factor for indexes on that table.
    Marcin,
    A key step in getting the physical implementation of a database right is to ask: "how much data, and how is it scattered" - which is what you're on about when you mention the "clustering factor". It's important, by the way, to make sure you distinguish carefully between the index statistic "clustering_factor" and the actual pattern of data scatter: the statistic should reflect reality, but since it doesn't, you need to make sure that everyone knows which one you are thinking of.
    The data scatter is the thing that can change most significantly when you try to reclaim space - and that's why you have to think about when the re-use takes place and how it takes place. The fact that it MAY be better or MAY be worse is irrelevant - you still have to THINK about what's going to happen, and how you can affect it, before you implement a change.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "Science is more than a body of knowledge; it is a way of thinking" Carl Sagan

  • LKM step Load huge data very slow

    Hi ALL,
    when you try to load 4 million data from flat file to my oracle database.
    it took me around 2.5 hours to finish the step 3 "LOAD DATA" which i thought odi will load data from flat file to C$ table.
    it is anyway to speed it up?
    I just chose the simple LKM FILE TO SQL option.
    thanks
    I Z

    this is only the step 3 create temp table. it is nothing about the sql load yet.
    create table <%=odiRef.getObjectName("T"+odiRef.getTableName("COLL_SHORT_NAME"),"W")%>
    <%=odiRef.getSrcColList("","[COL_NAME] [DEST_CRE_DT]","[COL_NAME] [DEST_CRE_DT]",",\n","")%>
    <%=odiRef.getUserExit("WORK_TABLE_OPTIONS")%>
    this one will auto-generate the sqll like
    create table ESBUSER.TC$_0TEST
    ROW CODE VARCHAR2(1), --> this one is auto-generated by the above code. i have not way to change ROW CODE TO ROW_CODE.
    B VARCHAR2(20),
    C VARCHAR2(20),
    D VARCHAR2(40)
    i dont know why it will generate the ROW CODE......without the "_"...
    please help
    thanks
    I Z

  • Query on GL_BALANCES Table is very slow

    Dear Members,
    I have prepared a query on GL_BALANCES Table which is as follows:
    SQL>
    select (nvl(sum(gb.period_net_dr), 0) - nvl(sum(gb.period_net_cr), 0))
    INTO V_AMT
    from gl_balances gb,
    gl_code_combinations gcc,
    fnd_flex_value_hierarchies ffvh
    where gb.set_of_books_id = 7
    and gb.actual_flag = 'B'
    and gb.period_year = P_YEAR --'2010'
    and gb.budget_version_id = P_BUD_VER_ID--1234
    and gb.code_combination_id = gcc.code_combination_id
    and gcc.segment3 >= ffvh.child_flex_value_low
    and gcc.segment3 <= ffvh.child_flex_value_high
    and ffvh.flex_value_set_id = 1012576
    and ffvh.parent_flex_value = P_FLEX_VAL;
    The above query is taking long time to complete.
    Plan of my query is as follows
    SELECT STATEMENT, GOAL = CHOOSE     Cost=49885     Cardinality=1     Bytes=64
    SORT AGGREGATE                                    Cardinality=1     Bytes=64
    MERGE JOIN               Cost=49885     Cardinality=12     Bytes=768
    SORT JOIN               Cost=49859     Cardinality=2192     Bytes=74528
    HASH JOIN               Cost=49822     Cardinality=2192     Bytes=74528
    TABLE ACCESS FULL     Object owner=GL     Object name=GL_BALANCES     Cost=47955     Cardinality=2192     Bytes=50416
    TABLE ACCESS FULL     Object owner=GL     Object name=GL_CODE_COMBINATIONS     Cost=1854     Cardinality=526850     Bytes=5795350
    FILTER                         
    SORT JOIN                         
    INDEX RANGE SCAN     Object owner=APPLSYS     Object name=FND_FLEX_VALUE_HIERARCHIES_N1     Cost=2     Cardinality=2     Bytes=60
    Can any one please help me in tuning this query.
    Thanks in advance.
    Best Regards.

    As per the other replies, you've not really given enough information to go on - what are you trying to achieve, versions, etc.
    On my old apps 11.5.8 system, the explain plan for your query uses GL_CODE_COMBINATIONS_U1 rather than a full scan of gl_code_combinations.
    Check your stats are up to date (select table_name, num_rows, last_analyzed from dba_tables where ...)
    See if you can also use period_name and/or period_set_name (or period_num) from GL_Periods rather than period_year (i.e. use P_YEAR to lookup the period_name/period_set_name/period_num from gl_periods). It might be faster to do per period and then consolidate for the whole year, as there are indexes on gl_balances for columns period_name, period_set_name, period_num.
    regards, Ivan

  • Have a tab group with 18 tabs. When all tabs open scrolling through them is very slow. Any thoughts.

    I use the scroll wheel on my mouse. When I scroll with the wheel there is a major lag time and most of the time it scrolls past several tabs.

    You can try to disable hardware acceleration in Firefox.
    *Tools > Options > Advanced > General > Browsing: "Use hardware acceleration when available"
    You need to close and restart Firefox after toggling this setting.
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
    *https://support.mozilla.org/kb/upgrade-graphics-drivers-use-hardware-acceleration

  • Retrieving record from oracle DB very slow..pls help

    Hi, i'm writing a VB code to retrieving records from Oracle DB Server version 8. I'm using VB Adodb to retrieve the records from various tables. Unfortunately one of the table are very slow to response, the table only contain around 204900 records. The SQL Statement to retrieve the records is a simple SQL Statement that contain WHERE clause only. Any issue that will make the retrieving time become slow? Is that a Indexing? Oracle Driver? Hardware Spec? Or any solution for me to improve the performance. Thanks!

    Well, there are a few things to consider...
    First, can you try executing your query via SQL*Plus? If there are database tuning problems, your query will be slow no matter where you run it.
    Second, are you retrieving significantly more rows in this query than in your other queries? It can take a significant amount of time to retrieve records to the client, even if it's quick to select them.
    Justin

  • Query Execution is very slow through Froms

    Hello Friends
    I am facing a problem with D2k Forms. when a run a Query through SQL its execution speed is very fast. the same Query when i run through Forms, like create basetable block and
    set_block_property and execute it is very slow. How do i overcome this problem.
    what are the various steps to keep in mind when writing code in forms.
    thanks in Advance

    Hi,
    In order to gather schema statistics in EBS, you will have to login as Sysadmin and submit a request named as "Gather Schema Statistics"
    Refer below link:
    http://appsdba.info/docs/oracle_apps/R12/GatherSchemaStatistics.pdf
    Also ensure to schedule the respective request so as to have your statistics up to date, either weekly or monthly as per your system environment.
    Please refer note:
    How Often Should Gather Schema Statistics Program be Run? [ID 168136.1]
    How to Gather Statistics on Custom Schemas for Ebusiness Suite 11i and R12? [ID 1065813.1]
    Hope this helps!
    Best Regards

  • Date insertion from large XML document (clob) into relation table very slow

    Hi Everybody!
    I'm working with Oracle 9.2.0.5 on Microsoft Windows Server 2003 Enterprise Edition.
    The server (a test server) is a Pentium 4 2.8 GHz, 1GB of RAM.
    I use a procedure called PARITOP_TRAITERXMLRESULTMASSE to insert the data contained in the pXMLDOC clob parameter in the table pTABLENAME. (You can see the format of the XML document below). The first step on this procedure is to verify that the XML document is not empty. If not, the procedure needs to add a node in the document, in every <ROW> tag. This added node is named “RST_ID”. It’s the foreign key of each record. I can retrieve the value of each <RST_ID> node in an other table in which the data has been previously added (by the calling procedure). When each of the <ROW> elements has been treated, the PARITOP_INSERTXML procedure is called. This procedure uses DBMS_XMLSAVE.INSERTXML to insert the data contained in the XML document in the specified table.
    (Below, you can see the code of my procedures.)
    With this information, can you tell me why this treatment is very very very slow with a large XML document and how I can improve it?
    Thank you for your help!
    Anne-Marie
    CREATE OR REPLACE PROCEDURE "PARITOP_TRAITERXMLRESULTMASSE" (
    pPRC_ID IN PARITOP_PARC.PRC_ID%TYPE,
    pRST_MONDE IN PARITOP_RESULTAT.RST_MONDE%TYPE,
    pXMLDOC IN CLOB,
    pTABLENAME IN VARCHAR2)
    AS
    Objectif :Insérer le contenu du XML passé en paramètre (pXMLDOC) à la table passée en paramètre (pTABLENAME)
    La table passée en paramètre doit être une table ayant comme clé étrangère le champs "RST_ID" .
    (Le noeud RST_ID est donc ajouté à tous les document XML. Ce rst_id est
    déterminé à partir de la table PARITOP_RESULTAT grâce à pPRC_ID et
    pRstMonde fournis en paramètre)
    result_doc CLOB;
    XMLDOMDOC XDB.DBMS_XMLDOM.DOMDOCUMENT;
    NODE_ROWSET DBMS_XMLDOM.DOMNODE;
    NODE_ROW DBMS_XMLDOM.DOMNODE;
    vUE_ID PARITOP_RESULTAT.UE_ID%TYPE;
    vRST_ID PARITOP_RESULTAT.RST_ID%TYPE;
    nodeList DBMS_XMLDOM.DOMNODELIST;
    BEGIN
    BEGIN
    vUE_ID := 0;
    vRST_ID := 0;
    XMLDOMDOC := DBMS_XMLDOM.NEWDOMDOCUMENT(pXMLDOC);
    IF NOT GESTXML_PKG.FN_PARITOP_DOCUMENT_IS_NULL(XMLDOMDOC) THEN
    NODE_ROWSET := DBMS_XMLDOM.item(DBMS_XMLDOM.GETCHILDNODES (DBMS_XMLDOM.MAKENODE(XMLDOMDOC)),0);
    for i in 0..dbms_xmldom.getLength(DBMS_XMLDOM.getchildnodes(NODE_ROWSET))-1 loop
    NODE_ROW := DBMS_XMLDOM.ITEM(DBMS_XMLDOM.GETCHILDNODES(NODE_ROWSET), i) ;
    nodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(DBMS_XMLDOM.makeelement(NODE_ROW) , 'UE_ID');
    IF vUE_ID <> DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0))) THEN
    vUE_ID := DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0)));
    --on ramasse le rst_id
    SELECT RST_ID INTO vRST_ID
    FROM PARITOP_RESULTAT RST
    WHERE RST.PRC_ID = pPRC_ID
    AND RST.UE_ID = vUE_ID
    AND RST.RST_MONDE = pRST_MONDE
    AND RST_A_SUPPRIMER = 0;
    END IF;
    GESTXML_PKG.PARITOP_ADDNODETOROW(XMLDOMDOC, NODE_ROW, 'RST_ID', vRST_ID);
    end loop;
    RESULT_DOC := ' '; --à garder, pour ne pas que ca fasse d'erreur lors du WriteToClob.
    dbms_xmldom.writeToClob(DBMS_XMLDOM.MAKENODE(XMLDOMDOC), RESULT_DOC);
    --Insertion du document XML dans la table "tableName"
    GESTXML_PKG.PARITOP_INSERTXML(RESULT_DOC, pTABLENAME);
    DBMS_XMLDOM.FREEDOCUMENT( XMLDOMDOC);
    end if;
    EXCEPTION
    […exception treatement…]
    END;
    END;
    The format of a XML clob is :
    <ROWSET>
    <ROW>
    <PRC_ID>193</PRC_ID>
    <UE_ID>8781</UE_ID>
    <VEN_ID>6223</VEN_ID>
    <RST_MONDE>0</RST_MONDE>
    <CMP_SELMAN>0</CMP_SELMAN>
    <CMP_INDICESELECTION>92.307692307692307</CMP_INDICESELECTION>
    <CMP_PVRES>94900</CMP_PVRES>
    <CMP_PVAJUSTE>72678.017699115066</CMP_PVAJUSTE>
    <CMP_PVAJUSTEMIN>72678.017699115095</CMP_PVAJUSTEMIN>
    <CMP_PVAJUSTEMAX>72678.017699115037</CMP_PVAJUSTEMAX>
    <CMP_PV>148000</CMP_PV>
    <CMP_VALROLE>129400</CMP_VALROLE>
    <CMP_PVRESECART>4790</CMP_PVRESECART>
    <CMP_PVRHAB>101778.01769911509</CMP_PVRHAB>
    <CMP_UTILISE>1</CMP_UTILISE>
    <CMP_TVM>1</CMP_TVM>
    <CMP_PVA>148000</CMP_PVA>
    </ROW>
    <ROW>
    <PRC_ID>193</PRC_ID>
    <UE_ID>8781</UE_ID>
    <VEN_ID>6235</VEN_ID>
    <RST_MONDE>0</RST_MONDE>
    <CMP_SELMAN>0</CMP_SELMAN>
    <CMP_INDICESELECTION>76.92307692307692</CMP_INDICESELECTION>
    <CMP_PVRES>117800</CMP_PVRES>
    <CMP_PVAJUSTE>118080</CMP_PVAJUSTE>
    <CMP_PVAJUSTEMIN>118080</CMP_PVAJUSTEMIN>
    <CMP_PVAJUSTEMAX>118080</CMP_PVAJUSTEMAX>
    <CMP_PV>172000</CMP_PV>
    <CMP_VALROLE>134800</CMP_VALROLE>
    <CMP_PVRESECART>0</CMP_PVRESECART>
    <CMP_PVRHAB>147180</CMP_PVRHAB>
    <CMP_UTILISE>1</CMP_UTILISE>
    <CMP_TVM>1</CMP_TVM>
    <CMP_PVA>172000</CMP_PVA>
    </ROW>
    </ROWSET>
    PARITOP_COMPARABLE TABLE :
    RST_ID NUMBER(10) NOT NULL,
    VEN_ID NUMBER(10) NOT NULL,
    CMP_SELMAN NUMBER(1) NOT NULL,
    CMP_UTILISE NUMBER(1) NOT NULL,
    CMP_INDICESELECTION FLOAT(53) NOT NULL,
    CMP_PVRES FLOAT(53) NULL,
    CMP_PVAJUSTE FLOAT(53) NULL,
    CMP_PVRHAB FLOAT(53) NULL,
    CMP_TVM FLOAT(53) NULL
    ROCEDURE PARITOP_INSERTXML (xmlDoc IN clob, tableName IN VARCHAR2)
    AS
    insCtx DBMS_XMLSave.ctxType;
    rowss number;
    BEGIN
    --permet d'insérer les champs du XML dans la table passée en paramètre.
    --il suffit que les champs XML aient le même nom que les champs de la table
    BEGIN
    insCtx := DBMS_XMLSave.newContext(tableName); -- get context handle
    DBMS_XMLSAVE.SETDATEFORMAT( insCtx, 'yyyy-MM-dd HH:mm:ss');--attention, case sensitive
    DBMS_XMLSAVE.setIgnoreCase(insCtx, 1);
    rowss := DBMS_XMLSAVE.INSERTXML(insCtx , xmlDoc);
    DBMS_XMLSave.closeContext(insCtx);
    EXCEPTION
    […]
    END;
    END;
    PROCEDURE PARITOP_ADDNODETOROW (
    XMLDOMDOC DBMS_XMLDOM.DOMDOCUMENT,
    NODE_ROW dbms_xmldom.DOMNode,
    NOM_NOEUD VARCHAR2,
    VALEUR_NOEUD VARCHAR2)
    AS
    --PERMET D'AJOUTER UN NOEUD AVEC 1 SEULE VALEUR DANS une ROW D'UN XML.
    --UTILE SURTOUT POUR LES CLÉS ÉTRANGÈRES
    domElemAInserer DBMS_XMLDOM.DOMELEMENT;
    NODE dbms_xmldom.DOMNode;
    NODE_TMP dbms_xmldom.DOMNode;
    BEGIN
    domElemAInserer := DBMS_XMLDOM.createElement(XMLDOMDOC, NOM_NOEUD) ;
    NODE := DBMS_XMLDOM.MAKENODE(domElemAInserer); --cast
    NODE := DBMS_XMLDOM.APPENDCHILD(NODE_ROW,NODE);
    NODE_TMP := DBMS_XMLDOM.MAKENODE(DBMS_XMLDOM.CREATETEXTNODE(XMLDOMDOC, VALEUR_NOEUD ) );
    NODE := DBMS_XMLDOM.APPENDCHILD(NODE,NODE_TMP );
    END;

    Hi Everybody!
    I'm working with Oracle 9.2.0.5 on Microsoft Windows Server 2003 Enterprise Edition.
    The server (a test server) is a Pentium 4 2.8 GHz, 1GB of RAM.
    I use a procedure called PARITOP_TRAITERXMLRESULTMASSE to insert the data contained in the pXMLDOC clob parameter in the table pTABLENAME. (You can see the format of the XML document below). The first step on this procedure is to verify that the XML document is not empty. If not, the procedure needs to add a node in the document, in every <ROW> tag. This added node is named “RST_ID”. It’s the foreign key of each record. I can retrieve the value of each <RST_ID> node in an other table in which the data has been previously added (by the calling procedure). When each of the <ROW> elements has been treated, the PARITOP_INSERTXML procedure is called. This procedure uses DBMS_XMLSAVE.INSERTXML to insert the data contained in the XML document in the specified table.
    (Below, you can see the code of my procedures.)
    With this information, can you tell me why this treatment is very very very slow with a large XML document and how I can improve it?
    Thank you for your help!
    Anne-Marie
    CREATE OR REPLACE PROCEDURE "PARITOP_TRAITERXMLRESULTMASSE" (
    pPRC_ID IN PARITOP_PARC.PRC_ID%TYPE,
    pRST_MONDE IN PARITOP_RESULTAT.RST_MONDE%TYPE,
    pXMLDOC IN CLOB,
    pTABLENAME IN VARCHAR2)
    AS
    Objectif :Insérer le contenu du XML passé en paramètre (pXMLDOC) à la table passée en paramètre (pTABLENAME)
    La table passée en paramètre doit être une table ayant comme clé étrangère le champs "RST_ID" .
    (Le noeud RST_ID est donc ajouté à tous les document XML. Ce rst_id est
    déterminé à partir de la table PARITOP_RESULTAT grâce à pPRC_ID et
    pRstMonde fournis en paramètre)
    result_doc CLOB;
    XMLDOMDOC XDB.DBMS_XMLDOM.DOMDOCUMENT;
    NODE_ROWSET DBMS_XMLDOM.DOMNODE;
    NODE_ROW DBMS_XMLDOM.DOMNODE;
    vUE_ID PARITOP_RESULTAT.UE_ID%TYPE;
    vRST_ID PARITOP_RESULTAT.RST_ID%TYPE;
    nodeList DBMS_XMLDOM.DOMNODELIST;
    BEGIN
    BEGIN
    vUE_ID := 0;
    vRST_ID := 0;
    XMLDOMDOC := DBMS_XMLDOM.NEWDOMDOCUMENT(pXMLDOC);
    IF NOT GESTXML_PKG.FN_PARITOP_DOCUMENT_IS_NULL(XMLDOMDOC) THEN
    NODE_ROWSET := DBMS_XMLDOM.item(DBMS_XMLDOM.GETCHILDNODES (DBMS_XMLDOM.MAKENODE(XMLDOMDOC)),0);
    for i in 0..dbms_xmldom.getLength(DBMS_XMLDOM.getchildnodes(NODE_ROWSET))-1 loop
    NODE_ROW := DBMS_XMLDOM.ITEM(DBMS_XMLDOM.GETCHILDNODES(NODE_ROWSET), i) ;
    nodeList := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(DBMS_XMLDOM.makeelement(NODE_ROW) , 'UE_ID');
    IF vUE_ID <> DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0))) THEN
    vUE_ID := DBMS_XMLDOM.GETNODEVALUE(DBMS_XMLDOM.GETFIRSTCHILD(DBMS_XMLDOM.ITEM(nodeList, 0)));
    --on ramasse le rst_id
    SELECT RST_ID INTO vRST_ID
    FROM PARITOP_RESULTAT RST
    WHERE RST.PRC_ID = pPRC_ID
    AND RST.UE_ID = vUE_ID
    AND RST.RST_MONDE = pRST_MONDE
    AND RST_A_SUPPRIMER = 0;
    END IF;
    GESTXML_PKG.PARITOP_ADDNODETOROW(XMLDOMDOC, NODE_ROW, 'RST_ID', vRST_ID);
    end loop;
    RESULT_DOC := ' '; --à garder, pour ne pas que ca fasse d'erreur lors du WriteToClob.
    dbms_xmldom.writeToClob(DBMS_XMLDOM.MAKENODE(XMLDOMDOC), RESULT_DOC);
    --Insertion du document XML dans la table "tableName"
    GESTXML_PKG.PARITOP_INSERTXML(RESULT_DOC, pTABLENAME);
    DBMS_XMLDOM.FREEDOCUMENT( XMLDOMDOC);
    end if;
    EXCEPTION
    […exception treatement…]
    END;
    END;
    The format of a XML clob is :
    <ROWSET>
    <ROW>
    <PRC_ID>193</PRC_ID>
    <UE_ID>8781</UE_ID>
    <VEN_ID>6223</VEN_ID>
    <RST_MONDE>0</RST_MONDE>
    <CMP_SELMAN>0</CMP_SELMAN>
    <CMP_INDICESELECTION>92.307692307692307</CMP_INDICESELECTION>
    <CMP_PVRES>94900</CMP_PVRES>
    <CMP_PVAJUSTE>72678.017699115066</CMP_PVAJUSTE>
    <CMP_PVAJUSTEMIN>72678.017699115095</CMP_PVAJUSTEMIN>
    <CMP_PVAJUSTEMAX>72678.017699115037</CMP_PVAJUSTEMAX>
    <CMP_PV>148000</CMP_PV>
    <CMP_VALROLE>129400</CMP_VALROLE>
    <CMP_PVRESECART>4790</CMP_PVRESECART>
    <CMP_PVRHAB>101778.01769911509</CMP_PVRHAB>
    <CMP_UTILISE>1</CMP_UTILISE>
    <CMP_TVM>1</CMP_TVM>
    <CMP_PVA>148000</CMP_PVA>
    </ROW>
    <ROW>
    <PRC_ID>193</PRC_ID>
    <UE_ID>8781</UE_ID>
    <VEN_ID>6235</VEN_ID>
    <RST_MONDE>0</RST_MONDE>
    <CMP_SELMAN>0</CMP_SELMAN>
    <CMP_INDICESELECTION>76.92307692307692</CMP_INDICESELECTION>
    <CMP_PVRES>117800</CMP_PVRES>
    <CMP_PVAJUSTE>118080</CMP_PVAJUSTE>
    <CMP_PVAJUSTEMIN>118080</CMP_PVAJUSTEMIN>
    <CMP_PVAJUSTEMAX>118080</CMP_PVAJUSTEMAX>
    <CMP_PV>172000</CMP_PV>
    <CMP_VALROLE>134800</CMP_VALROLE>
    <CMP_PVRESECART>0</CMP_PVRESECART>
    <CMP_PVRHAB>147180</CMP_PVRHAB>
    <CMP_UTILISE>1</CMP_UTILISE>
    <CMP_TVM>1</CMP_TVM>
    <CMP_PVA>172000</CMP_PVA>
    </ROW>
    </ROWSET>
    PARITOP_COMPARABLE TABLE :
    RST_ID NUMBER(10) NOT NULL,
    VEN_ID NUMBER(10) NOT NULL,
    CMP_SELMAN NUMBER(1) NOT NULL,
    CMP_UTILISE NUMBER(1) NOT NULL,
    CMP_INDICESELECTION FLOAT(53) NOT NULL,
    CMP_PVRES FLOAT(53) NULL,
    CMP_PVAJUSTE FLOAT(53) NULL,
    CMP_PVRHAB FLOAT(53) NULL,
    CMP_TVM FLOAT(53) NULL
    ROCEDURE PARITOP_INSERTXML (xmlDoc IN clob, tableName IN VARCHAR2)
    AS
    insCtx DBMS_XMLSave.ctxType;
    rowss number;
    BEGIN
    --permet d'insérer les champs du XML dans la table passée en paramètre.
    --il suffit que les champs XML aient le même nom que les champs de la table
    BEGIN
    insCtx := DBMS_XMLSave.newContext(tableName); -- get context handle
    DBMS_XMLSAVE.SETDATEFORMAT( insCtx, 'yyyy-MM-dd HH:mm:ss');--attention, case sensitive
    DBMS_XMLSAVE.setIgnoreCase(insCtx, 1);
    rowss := DBMS_XMLSAVE.INSERTXML(insCtx , xmlDoc);
    DBMS_XMLSave.closeContext(insCtx);
    EXCEPTION
    […]
    END;
    END;
    PROCEDURE PARITOP_ADDNODETOROW (
    XMLDOMDOC DBMS_XMLDOM.DOMDOCUMENT,
    NODE_ROW dbms_xmldom.DOMNode,
    NOM_NOEUD VARCHAR2,
    VALEUR_NOEUD VARCHAR2)
    AS
    --PERMET D'AJOUTER UN NOEUD AVEC 1 SEULE VALEUR DANS une ROW D'UN XML.
    --UTILE SURTOUT POUR LES CLÉS ÉTRANGÈRES
    domElemAInserer DBMS_XMLDOM.DOMELEMENT;
    NODE dbms_xmldom.DOMNode;
    NODE_TMP dbms_xmldom.DOMNode;
    BEGIN
    domElemAInserer := DBMS_XMLDOM.createElement(XMLDOMDOC, NOM_NOEUD) ;
    NODE := DBMS_XMLDOM.MAKENODE(domElemAInserer); --cast
    NODE := DBMS_XMLDOM.APPENDCHILD(NODE_ROW,NODE);
    NODE_TMP := DBMS_XMLDOM.MAKENODE(DBMS_XMLDOM.CREATETEXTNODE(XMLDOMDOC, VALEUR_NOEUD ) );
    NODE := DBMS_XMLDOM.APPENDCHILD(NODE,NODE_TMP );
    END;

  • InDesign CC 2014 is very very slow when working with a table.

    InDesign CC 2014 is very very slow when working with a table. Every 1/2 - 1 hour it nearly falls back, impossible to work with. While this project must be finshed quite soon..
    What the hell is the matter with this Creative Cloud. I havea very fast iMac form 2014. I closed all other programmes, even cannot listen to music now. More people with this problem??
    Martien

    @Martien – How complex is your table?
    How many cells? Merged ones as well?
    Complex formatting of texts inside the cells?
    Complex formatting rules of table rows and/or columns?
    Many images inserted?
    If yes, and the table is running through many text frames of many pages, I fear, you can do nothing against slowness.
    Nothing but: Greek text, not showing the page contents in the Pages Panel, in short: anything you can do to get better performance in redrawing of the screen.
    If you have the chance to break up one big table in several parts, do that and edit its parts one after another isolated. Pehaps in different documents.
    Then merge the parts in one table, if you want to flow it from page to page.
    Uwe

  • Pages gets very slow when working on a long table in a document

    Hello!
    I'm working with a table in pages09. it goes over pages. as soon as i want to write some text in the different fields, or, worse, CHANGE text in the fields, pages gets very very very slow.
    why? what can i do?
    i tried the wrap/unwrap-function, but it has no influence.besides, if it's not wrapped in the text, i cannot see the whoe table.
    do i make some mistake?
    thanks for answers, greetings from zürich
    kolibri

    The code used to drive tables is quite the same than the one used by Numbers.
    It is slow in Numbers so, it's logically slow in Pages.
    Yvan KOENIG (from FRANCE mardi 24 mars 2009 20:48:40)

  • Oracle table insertion is very slow - Very Imp

    I have a oracle 9i db installed on Windows 2000 Adv. Server. Server is single processor ,2GB RAM.
    and I have a table is have one long raw field & 4 other fields. It contails 10k records. and table is indexed.
    I have an application is VB using ADOs I connected to Oracle db. I am saving binary file to long raw field. For me retreival is very fast and when i am inserting the record it is very slow. It is taking 4min for one record.
    Please help me to solve this issue

    Is it possible for your capture the execution plan, as well as session wait events?
    If you have buffer busy waits, and not using ASSM (Automatic Segemtn Storage Management), playing with free list also helps.
    Jaffar

  • Updated to LR 5.4, images now importing extremely slow. After importing and rendering images are still very slow to go through and develop. No issues in LR 5.3 which was very fast.

    After importing and rendering images are still very slow to go through and develop. No issues in LR 5.3 which was very fast. Canon,Nikon, Leica and Fuji files all rendering slow. iMac 2.9 ghz 16gb RAM OSX 10.8.5. Catalogs and images are kept on external drives. Drives running fine. Really need a fix on this since I'm norally imported and processing at least 4,000 images per LR Catalog. Is there way to revert back to 5.3? I can't use 5.4 is its current state. Thanks.

    Download LR 5.3 and install it
    By the way, lots of people have this complaint about LR 5.4, and the advice I give is to use LR 5.3 unless you need one of the new camera models supported by LR 5.4

Maybe you are looking for

  • Recall for my problem urgent help needed

    Hi friends, I am a new DB administrator and I have faced a problem in our database. Here i will explain our architecture and i will state the problem. In my org. we have database server responsible for keeping the DB itself. Another server which is t

  • Quick Question On Pulse Measurements

    I was wondering what the percents are the percent of on the Pulse measurments.vi   Default (10,50,90)% I understand the low,mid, and high part of the vi. But what are the percents referencing? It it simply  % of your largest pulse? I know it isn't ve

  • Trouble with Mangement VLAN on SF300-24P

    This should be really simple for you guys. The SF300 Switch is in Layer 2 Mode. I have 3 VLANs configured on this switch: VLAN1 - Default VLAN VLAN2 - Wireless VLAN3 - Video (management VLAN) I moved the management VLAN from VLAN1 to VLAN3. I have a

  • Dsconf export - SunOne 6.2 DS

    Do we have any command to export ldif in DS6 which does not prompt for password. I tried ./dsconf export -c -h servername -p 389 suffix-DN /path/output.ldif I know we can have -w option to pass password file, but we don't want to use it. Is there any

  • Breaking up a String array

    Hi guys! I have been working on this for a while! I have an assignment which requires: -take input of a seven digit integer - break this number apart and perform calculations in order to "encrypt" the number. -etc.. I thought I should break the strin