Hierarchical tree item - how to improve performance

I'm loading hierarchical tree item with query.
Problem is that it takes very long to load all the items(300, but can be more) to the hierarchical item.
Query takes 0.5 sec., but loading it into the item with Set_Tree_Property(htree, Ftree.RECORD_GROUP
the code:
PL1 := Create_Group_From_Query('pl1', query);
v_ignore := Populate_Group(PL1); -- 0.5 sec
Ftree.Set_Tree_Property(htree, Ftree.RECORD_GROUP, PL1); -- 3 sec.
Does anyone have any idea what to do to improve tree loading?

Hello,
try to play a little bit with the state-column of your query. If you only display the first hierarchy level
and set the state of the "hidden" nodes to open, I think ist is the state 1, then it works much faster.
cu
Matthias M|ller

Similar Messages

  • How to improve performance of Siebel Configurator

    Hi All,
    We are using Siebel Configurator to model the item structures. We wrote few constraint rules on that. But while launching the configurator it is taking more time to open.
    Even without rules also it is behaving in the same manner.
    Any inputs on this could be highly appreciated
    RAM

    duplicate thread..
    How to improve performance of attached query

  • How to improve performance of MediaPlayer?

    I tried to use the MediaPlayer with a On2 VP6 flv movie.
    Showing a video with a resolution of 1024x768 works.
    Showing a video with a resolution of 1280x720 and a average bitrate of 1700 kb/s leads to a delay of the video signal behind the audio signal of a couple of seconds. VLC, Media Player Classic and a couple of other players have no problem with the video. Only the FX MediaPlayer shows a poor performance.
    Additionally mouse events in a second stage (the first stage is used for the video) are not processed in 2 of 3 cases. If the MediaPlayer is switched off, the mouse events work reliable.
    Does somebody know a solution for this problems?
    Cheers
    masim

    duplicate thread..
    How to improve performance of attached query

  • How to improve performance of the attached query

    Hi,
    How to improve performance of the below query, Please help. also attached explain plan -
    SELECT Camp.Id,
    rCam.AccountKey,
    Camp.Id,
    CamBilling.Cpm,
    CamBilling.Cpc,
    CamBilling.FlatRate,
    Camp.CampaignKey,
    Camp.AccountKey,
    CamBilling.billoncontractedamount,
    (SUM(rCam.Impressions) * 0.001 + SUM(rCam.Clickthrus)) AS GR,
    rCam.AccountKey as AccountKey
    FROM Campaign Camp, rCamSit rCam, CamBilling, Site xSite
    WHERE Camp.AccountKey = rCam.AccountKey
    AND Camp.AvCampaignKey = rCam.AvCampaignKey
    AND Camp.AccountKey = CamBilling.AccountKey
    AND Camp.CampaignKey = CamBilling.CampaignKey
    AND rCam.AccountKey = xSite.AccountKey
    AND rCam.AvSiteKey = xSite.AvSiteKey
    AND rCam.RmWhen BETWEEN to_date('01-01-2009', 'DD-MM-YYYY') and
    to_date('01-01-2011', 'DD-MM-YYYY')
    GROUP By rCam.AccountKey,
    Camp.Id,
    CamBilling.Cpm,
    CamBilling.Cpc,
    CamBilling.FlatRate,
    Camp.CampaignKey,
    Camp.AccountKey,
    CamBilling.billoncontractedamount
    Explain Plan :-
    Description Object_owner Object_name Cost Cardinality Bytes
    SELECT STATEMENT, GOAL = ALL_ROWS 14 1 13
    SORT AGGREGATE 1 13
    VIEW GEMINI_REPORTING 14 1 13
    HASH GROUP BY 14 1 103
    NESTED LOOPS 13 1 103
    HASH JOIN 12 1 85
    TABLE ACCESS BY INDEX ROWID GEMINI_REPORTING RCAMSIT 2 4 100
    NESTED LOOPS 9 5 325
    HASH JOIN 7 1 40
    SORT UNIQUE 2 1 18
    TABLE ACCESS BY INDEX ROWID GEMINI_PRIMARY SITE 2 1 18
    INDEX RANGE SCAN GEMINI_PRIMARY SITE_I0 1 1
    TABLE ACCESS FULL GEMINI_PRIMARY SITE 3 27 594
    INDEX RANGE SCAN GEMINI_REPORTING RCAMSIT_I 1 1 5
    TABLE ACCESS FULL GEMINI_PRIMARY CAMPAIGN 3 127 2540
    TABLE ACCESS BY INDEX ROWID GEMINI_PRIMARY CAMBILLING 1 1 18
    INDEX UNIQUE SCAN GEMINI_PRIMARY CAMBILLING_U1 0 1

    duplicate thread..
    How to improve performance of attached query

  • How to improve performance of attached query

    Hi,
    How to improve performance of the below query, Please help. also attached explain plan -
    SELECT Camp.Id,
    rCam.AccountKey,
    Camp.Id,
    CamBilling.Cpm,
    CamBilling.Cpc,
    CamBilling.FlatRate,
    Camp.CampaignKey,
    Camp.AccountKey,
    CamBilling.billoncontractedamount,
    (SUM(rCam.Impressions) * 0.001 + SUM(rCam.Clickthrus)) AS GR,
    rCam.AccountKey as AccountKey
    FROM Campaign Camp, rCamSit rCam, CamBilling, Site xSite
    WHERE Camp.AccountKey = rCam.AccountKey
    AND Camp.AvCampaignKey = rCam.AvCampaignKey
    AND Camp.AccountKey = CamBilling.AccountKey
    AND Camp.CampaignKey = CamBilling.CampaignKey
    AND rCam.AccountKey = xSite.AccountKey
    AND rCam.AvSiteKey = xSite.AvSiteKey
    AND rCam.RmWhen BETWEEN to_date('01-01-2009', 'DD-MM-YYYY') and
    to_date('01-01-2011', 'DD-MM-YYYY')
    GROUP By rCam.AccountKey,
    Camp.Id,
    CamBilling.Cpm,
    CamBilling.Cpc,
    CamBilling.FlatRate,
    Camp.CampaignKey,
    Camp.AccountKey,
    CamBilling.billoncontractedamount
    Explain Plan :-
    Description Object_owner Object_name Cost Cardinality Bytes
    SELECT STATEMENT, GOAL = ALL_ROWS 14 1 13
    SORT AGGREGATE 1 13
    VIEW GEMINI_REPORTING 14 1 13
    HASH GROUP BY 14 1 103
    NESTED LOOPS 13 1 103
    HASH JOIN 12 1 85
    TABLE ACCESS BY INDEX ROWID GEMINI_REPORTING RCAMSIT 2 4 100
    NESTED LOOPS 9 5 325
    HASH JOIN 7 1 40
    SORT UNIQUE 2 1 18
    TABLE ACCESS BY INDEX ROWID GEMINI_PRIMARY SITE 2 1 18
    INDEX RANGE SCAN GEMINI_PRIMARY SITE_I0 1 1
    TABLE ACCESS FULL GEMINI_PRIMARY SITE 3 27 594
    INDEX RANGE SCAN GEMINI_REPORTING RCAMSIT_I 1 1 5
    TABLE ACCESS FULL GEMINI_PRIMARY CAMPAIGN 3 127 2540
    TABLE ACCESS BY INDEX ROWID GEMINI_PRIMARY CAMBILLING 1 1 18
    INDEX UNIQUE SCAN GEMINI_PRIMARY CAMBILLING_U1 0 1

    duplicate thread..
    How to improve performance of attached query

  • How to improve performance of query

    Hi all,
    How to improve performance of query.
    please send :
    [email protected]
    thanks in advance
    bhaskar

    hi
    go through the following links for performance
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cccad390-0201-0010-5093-fd9ec8157802
    http://www.asug.com/client_files/Calendar/Upload/ASUG%205-mar-2004%20BW%20Performance%20PDF.pdf
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2

  • How to improve performance of insert statement

    Hi all,
    How to improve performance of insert statement
    I am inserting 1lac records into table it takes around 20 min..
    Plz help.
    Thanx In Advance.

    I tried :
    SQL> create table test as select * from dba_objects;
    Table created.
    SQL> delete from test;
    3635 rows deleted.
    SQL> commit;
    Commit complete.
    SQL> select count(*) from dba_extents where segment_name='TEST';
    COUNT(*)
    4
    SQL> insert /*+ APPEND */ into test select * from dba_objects;
    3635 rows created.
    SQL> commit;
    Commit complete.
    SQL> select count(*) from dba_extents where segment_name='TEST';
    COUNT(*)
    6
    Cheers, Bhupinder

  • How to improve performance when there are many TextBlocks in ItemsControl items?

       Hi,
       I'm trying to find a way to improve performance for a situation when there is an ItemsControl using UI and Data virtualization and each item on that control has 36 TextBlocks. Basically the item is a single string. There are so many TextBlocks
    to allow assigning different brushes to different parts of the string. Performance of this construction is terrible. I have 37 items visible on the screen and if I try to scroll up or down it scrolls into the black space and then it takes a second or two to
    show the items.
       I tried different things. For example, the most successful performance-wise was to replace TextBlocks with Borders and then draw bitmaps. In other words, I prepared 127 bitmaps for each character (I need ASCII only) and then I used those bitmaps
    to set Border.Backgrounds. It improved performance about 1.5 - 2 times but it consumed much more memory (which is not surprising, of course). Required amount of memory is so big that it throws OutOfMemoryException on 512MB emulator but works on 1GB. As a result
    I don't thing it is a good solution.
       Another thing that worked perfect is to replace 36 TextBlocks with only 6 TextBlocks. In this case the performance improvement is about 5 - 10 times but I lose the ability to set different colors to different parts of the string. It seems that
    the performance degrades dramatically with the increase of number of TextBlocks. Is there another technique to draw strings where literally each character can be of different color with decent performance?
    Thank you
    Alex

       Using Runs inside TextBlocks gives approximately the same improvement as using bitmaps 1.5 - 2 times faster but it is not even close to the case with just a couple of TextBlocks in the ItemsControl item. Any other ideas?
    Alex

  • How to improve performance on SD document with over 1000 line items

    Dear experts,
    A lot of our SD document contains 1500 to 5000 line items. Saving a simple change of one line item description would take 5 minutes (with or without pricing considerations). We are on ECC 5.0. Does anyone know of an existing snote or ways that would help to improve performance?
    A related question on performance tracing. I have done some tracing and notice that the time to access SQL/buffer/enqueue/RFC only amount to less than 50% (sometimes 5%) of the total processing time. What has the system been doing for the "unrecorded" time?
    Thank you and appreciate!
    -cynthia

    I would check which modules or which parts of code take the most of the processing time. You can use SE30 to check one order save.
    If it's not SQL - then it may be internal processing like inefficient loops and so on.  For example runtime of nested loops with big tables have grows exponentially.
    It may be caused by SAP code - search OSS notes for based on the module names which consume most time.
    OR it can be caused by the code in your userexits - then developers have to fix it and redesign using more efficient technique.

  • Hierarchical Tree. How do I know which node is selected.

    Hi All,
    I have a Hierarchical tree, How do I know which node is selected
    by the user. Similar is the case with list item.
    Thank You,
    Raj.

    Raj,
    For the hierarchical tree, use the when-tree-node-activated
    trigger and the Ftree.Get_Tree_Node_Property built in to identify
    the node that was selected.
    For a list box use a when-list-changed trigger. To refer to the
    value of the selected list item you can use the block.item
    syntax.

  • How to Improve performance issue when we are using BRM LDB

    HI All,
    I am facing a performanc eissue when i am retriving the data from BKPF and respective BSEG table....I see that for fiscal period there are around 60lakhs records. and to populate the data value from the table to final internal table its taking so much of time.
    when i tried to make use of the BRM LDB with the SAP Query/Quickviewer, its the same issue.
    Please suggest me how to improve the performance issue.
    Thanks in advance
    Chakradhar

    Moderator message - Please see Please Read before Posting in the Performance and Tuning Forum before posting - post locked
    Rob

  • HOW TO IMPROVE PERFORMANCE ON SUM FUNCTION IN INLINE SQL QUERY

    SELECT NVL(SUM(B1.T_AMOUNT),0) PAYMENT,B1.ACCOUNT_NUM,B1.BILL_SEQ
    FROM
    SELECT P.T_AMOUNT,P.ACCOUNT_NUM,P.BILL_SEQ
    FROM PAYMENT_DATA_VIEW P
    WHERE TRUNC(P.ACC_PAYMENT_DATE) < '01-JAN-2013'
    AND P.CUSTOMER_NAME ='XYZ'
    AND P.CLASS_ID IN (-1,1,2,94)
    ) B1
    GROUP BY B1.ACCOUNT_NUM,B1.BILL_SEQ
    Above is the query.If we run inner query it takes few second to execute but while we are summing up the same amount and bill_Seq using inline view, it takes time to execute it.
    Note: Count of rows selected from inner query will be around >10 Lac
    How to improve the performance for this query?
    Pls suggest
    Thanks in advance

    989209 wrote:
    SELECT NVL(SUM(B1.T_AMOUNT),0) PAYMENT,B1.ACCOUNT_NUM,B1.BILL_SEQ
    FROM
    SELECT P.T_AMOUNT,P.ACCOUNT_NUM,P.BILL_SEQ
    FROM PAYMENT_DATA_VIEW P
    WHERE TRUNC(P.ACC_PAYMENT_DATE) < '01-JAN-2013'
    AND P.CUSTOMER_NAME ='XYZ'
    AND P.CLASS_ID IN (-1,1,2,94)
    ) B1
    GROUP BY B1.ACCOUNT_NUM,B1.BILL_SEQ
    Above is the query.If we run inner query it takes few second to execute but while we are summing up the same amount and bill_Seq using inline view, it takes time to execute it.
    Note: Count of rows selected from inner query will be around >10 Lac
    How to improve the performance for this query?
    Pls suggest
    Thanks in advancea) Lac is not an international unit, so is not understood by everyone. This is an international forum so please use international units.
    b) Please read the FAQ: {message:id=9360002} to learn how to format your question correctly for people to help you.
    c) As your question relates to performance tuning, please also read the two threads linked to in the FAQ: {message:id=9360003} for an idea of what specific information you need to provide for people to help you tune your query.

  • How to improve performance of my query

    Hello Friends,
    Good Morning.
    I am having the following query which is never ending - Can any one throw some light on how to improve the performance of my said said query ..This is the query generated in ODI ( ORACLE DATA INTEGRATOR 11G )
    The only thing I can put in this query is optimizers
    - issue resolved
    Please advice .
    Thanks / Kumar
    Edited by: kumar73 on May 18, 2012 6:38 AM
    Edited by: kumar73 on May 18, 2012 6:39 AM
    Edited by: kumar73 on May 18, 2012 12:04 PM

    The two DISTINCTs are redundant, as UNION results in unique records, as a set can't have duplicates.
    Other than that the query is not formatted and unreadable, and you didn't provide a description of the tables involved.
    Your strategy seems to be maximum help from this forum with minimum effort from yourself, other than hitting copy and paste.
    Sybrand Bakker
    Senior Oracle DBA

  • How to improve performance for Custom Extractor in BI..

    HI all,
               I am new to BI and started working on BI for couple of weeks.. I created a Custom Extractor(Data View) in the Source system and when i pull data takes lot of time.. Can any one respond to this, suggesting how to improve the performance of my custom Extractor.. Please do the needfull..
      Thanks and Regards,
    Venugopal..

    Dear Venugopal,
    use transaction ST05 to check if your SQL statements are optimal and that you do not have redundant database calls. You should use as much as possible "bulking", which means to fetch the required data with one request to database and not with multiple requests to database.
    Use transaction SE30 to check if you are wasting time in loops and if yes, optimize the algorithm.
    Best Regards,
    Sylvia

  • Hierarchical Tree Items question, in Oracle9i forms builder ^^;

    Hi,I'm kind of new to using the Hierachical Tree item in Oracle9i Forms builder. so anyway,in the book it was explaining how it's done clearly,but, what I want to do using that item is kind of different;
    in the book it has the way of making it like a navigator for the items/fields/tables in the database,either by creating a view for those fields by using Select Statements or using the whole table itself.
    however,what I'm trying to do is to have that tree list the names of Forms I have already created and probably the list of Reports I got,so it would sort of like a Menu and I could add a trigger to open the form/report once an item in the tree is double clicked on
    here's an example of what I'm talking about :
    http://i7.photobucket.com/albums/y264/_Crzy_Chck_/Htree.jpg
    sorry the screen shot isn't the best ^^;
    that's from a company my friend works at,they have that tree as a menu for their forms and reports,once u double click on a form name or a report,it opens up ^^;
    I tried google/yahoo,I got the same info I found on the book.

    Or you may want to check out this code:
       PROCEDURE next_menu(
          menu_in                                        IN OUT   NUMBER
        , master_menu_in                                 IN       NUMBER
        , master_name_in                                 IN       VARCHAR2
        , context_menu_in                                IN       VARCHAR2
        , node_in                                        IN       ftree.node
        , no_rows_out                                    IN OUT   BOOLEAN )
       IS
          CURSOR c_menu(
             b_master_menu                                           NUMBER
           , b_prev_menu                                             NUMBER
           , b_context_menu                                          gba_tpivmnu.kmenu%TYPE )
          IS
             SELECT   p.ofnk MASTER
                    , m.ofnk
                    , m.napp || m.kfnk_sub napplus
                    , m.rid
                    , m.rid_mas
                 FROM gba_tpivmnu p                                             -- parent menu
                    , gba_tpivmnu m                                                    -- menu
                WHERE m.rid_mas = p.rid
                  AND m.kmenu = b_context_menu
                  AND (
                          m.rid_mas = b_master_menu
                       OR (    b_master_menu IS NULL
                           AND m.rid_mas IS NULL ) )
                  AND (   m.rid > b_prev_menu
                       OR b_prev_menu IS NULL )
             ORDER BY m.rid;
          r_menu                                       c_menu%ROWTYPE;
          l_prev_menu                                  tmenu.kode%TYPE;
          l_teller                                     PLS_INTEGER := 0;
          new_node                                     ftree.node;
          this_node                                    ftree.node;
          tree_itm                                     item := FIND_ITEM( tree_item );
          l_top_node_name                              VARCHAR2( 512 );
       BEGIN
          IF master_menu_in IS NOT NULL
          THEN
             IF node_in IS NULL
             THEN
                /* eerste keer, dus dit wordt de bovenste node */
                l_top_node_name := master_name_in;
                glob.set_current_menu( context_menu_in );
                new_node :=
                   ftree.ADD_TREE_NODE(
                      tree_itm
                    , ftree.root_node
                    , ftree.parent_offset
                    , ftree.last_child
                    , ftree.expanded_node
                    , master_name_in
                    , 'favorites'
                    , master_menu_in );
             END IF;
             LOOP
                r_menu.rid := NULL;
                OPEN c_menu(
                       master_menu_in
                     , l_prev_menu
                     , context_menu_in );
                FETCH c_menu
                 INTO r_menu;
                CLOSE c_menu;
                l_teller := l_teller + 1;
                l_prev_menu := r_menu.rid;
                EXIT WHEN r_menu.rid IS NULL;
                this_node :=
                   ftree.ADD_TREE_NODE(
                      tree_itm
                    , NVL( node_in, new_node )
                    , ftree.parent_offset
                    , ftree.last_child
                    , ftree.expanded_node
                    , r_menu.ofnk
                    , NULL
                    , r_menu.napplus );
                next_menu(
                   menu_in                                 => menu_in
                 , master_menu_in                          => r_menu.rid
                 , master_name_in                          => r_menu.ofnk
                 , context_menu_in                         => context_menu_in
                 , node_in                                 => this_node
                 , no_rows_out                             => no_rows_out );
             END LOOP;
             IF l_teller = 0
             THEN
                no_rows_out := TRUE;
             END IF;
             IF l_top_node_name IS NOT NULL
             THEN
                set_tree_item_top_node( l_top_node_name );
             END IF;
          END IF;
       END next_menu;tree_item contains the name of the tree item you are using. the select statement is based on a table that is like EMP, where one EMP van be another EMP's manager. In this table a menu-option can be another menu-option's master.
    this is a recursive function that keeps calling itself untill the query finds no more record.
    Good Luck!

Maybe you are looking for

  • Creative Cloud desktop app launches, does nothing

    Attempting to install a new product with CC. The window comes up and is completely blank. I have a PC running windows 7. I Tried reinstalling CC. I have many adobe products already installed and running. Also, CC on a Mac sharing the same Internet co

  • On screen Icon

    I have got a small icon(alert) at the top left hand side of  my screen. It looks like a battery with a number by the side of it.This morning the number was 9 then it went to 12 and now its on 19 can anyone tell me what it is how to view if its an ale

  • Where can I buy an IBrick?

    I looking to buy a non functional phone. I'm willing to pay good money for the product and service. Wait a minute, I already have one. Disregard.

  • Is there anyway to bring the old music app back (pre IOS 5 update)

    It is not user friendly at all.  Even my 7 year old does not want to use the ipad as a music player anymore:-(  Apple please review this....really it worked great before!  Have you ever heard of ...If it aint broke dont fix it.  Thanks

  • CSS Background frustrations

    Hi Guys, I've come across an issue I regularly have and am determined to find out why and to solve it. Basically, the problem is applying background images to divs. Works fine in IE but never in FF. FireFox takes it's positioning from the top left ha