OT: How can we tune the search performance from the HTMLDB side?

This might be not an issue that can be solved by HTMLDB itself. However, I'd like to give a shot because our HTMLDB apps are 'killing' the server, according to our DBA. One app I made is querying a 50 million records table, so everytime the query is fairly slow. Is there any way to tune the performance? Our DBA suggests using other tools like Discoverer or Orable Form to do the work of HTMLDB.
Thanks for the inputs.
Luc

not OT.
as noted, you need to determine which SQL statements are the culprit (various ways, your DBA should be very happy to help)
but if you are using wizards that include a search field, you may be falling victim to some very inefficient SQL generated by HTML-DB/Apex, for instance (created by the application wizard for an application based on a table, creating a page with a report and a form):
select
"ID",
"OBJECT_OWNER",
"OBJECT_TYPE",
"OBJECT_NAME",
"TAB_COMMENTS",
"OBJECT_CREATED",
"OBJECT_MODIFIED",
"USAGE_NOTES",
"OBSOLETE_FLAG"
from "DEV_TAB_COMMENTS"
where
instr(upper("OBJECT_OWNER"),upper(nvl(:P1_REPORT_SEARCH,"OBJECT_OWNER"))) > 0 or
instr(upper("OBJECT_TYPE"),upper(nvl(:P1_REPORT_SEARCH,"OBJECT_TYPE"))) > 0 or
instr(upper("OBJECT_NAME"),upper(nvl(:P1_REPORT_SEARCH,"OBJECT_NAME"))) > 0 or
instr(upper("TAB_COMMENTS"),upper(nvl(:P1_REPORT_SEARCH,"TAB_COMMENTS"))) > 0 or
instr(upper("USAGE_NOTES"),upper(nvl(:P1_REPORT_SEARCH,"USAGE_NOTES"))) > 0 or
instr(upper("OBSOLETE_FLAG"),upper(nvl(:P1_REPORT_SEARCH,"OBSOLETE_FLAG"))) > 0
which will do a full table scan no matter what search criteria you enter, and cannot be fixed on the database side -- sometimes SQL can be fixed with the creation of function-based-indexes( FBI), that won't work here.
if your pages have such SQL, it needs to be rewritten to take advantage of indexes (FBI or otherwise)

Similar Messages

  • How Can We Tune the Joins with "OR" Caluse ?

    Hi
    We've identified one Query in one of Our PL/SQL Stored Procedure which is taking huge time to fetch the records. I have simulated the problem as shown below. The problem Is, How can i tune the Jions with "OR" Clause. i have tried replacing them with Exists Caluse, But the Performance was not much was expected.
    CREATE TABLE TEST
    (ID NUMBER VDATE DATE );
    BEGIN
      FOR i IN 1 .. 100000 LOOP
        INSERT INTO TEST
        VALUES
          (i, TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2452641, 2452641 + 364)), 'J'));
        IF MOD(i, 1000) = 0 THEN
          COMMIT;
        END IF;
      END LOOP;
    END;
    CREATE TABLE RTEST1 ( ID NUMBER, VMONTH NUMBER );
    INSERT INTO RTEST1
    SELECT ID, TO_NUMBER(TO_CHAR(VDATE,'MM'))
    FROM TEST ;
    CREATE TABLE RTEST2 ( ID NUMBER, VMONTH NUMBER );
    INSERT INTO RTEST2
    SELECT ID, TO_NUMBER(TO_CHAR(VDATE,'MM'))
    FROM TEST;
    CREATE INDEX RTEST1_IDX2 ON RTEST1(VMONTH)
    CREATE INDEX RTEST2_IDX1 ON RTEST2(VMONTH)
    ALTER TABLE RTEST1 ADD CONSTRAINT RTEST1_PK  PRIMARY KEY (ID)
    ALTER TABLE RTEST2 ADD CONSTRAINT RTEST2_PK  PRIMARY KEY (ID)
    SELECT A.ID, B.VMONTH
    FROM RTEST1 A , RTEST2 B
    WHERE A.ID = B.ID  
    AND ( (A.ID = B.VMONTH) OR ( B.ID = A.VMONTH ) )  
    BEGIN
    DBMS_STATS.gather_table_stats(ownname => 'PHASE30DEV',tabname => 'RTEST1');  
    DBMS_STATS.gather_table_stats(ownname => 'PHASE30DEV',tabname => 'RTEST2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST1_IDX1');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST2_IDX2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST1_IDX2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST2_IDX1');
    END; Pls suggest !!!!!!! How can I tune the Joins with "OR" Clause.
    Regards
    RJ

    I don't like it, but you could use a hint:
    SQL>r
      1  SELECT A.ID, B.VMONTH
      2  FROM RTEST1 A , RTEST2 B
      3  WHERE A.ID = B.ID
      4* AND ( (A.ID = B.VMONTH) OR ( B.ID = A.VMONTH ) )
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=94 Card=2 Bytes=28)
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'RTEST2' (Cost=94 Card=1 Bytes=7)
       2    1     NESTED LOOPS (Cost=94 Card=2 Bytes=28)
       3    2       TABLE ACCESS (FULL) OF 'RTEST1' (Cost=20 Card=100000 Bytes=700000)
       4    2       BITMAP CONVERSION (TO ROWIDS)
       5    4         BITMAP AND
       6    5           BITMAP CONVERSION (FROM ROWIDS)
       7    6             INDEX (RANGE SCAN) OF 'RTEST2_PK' (UNIQUE)
       8    5           BITMAP OR
       9    8             BITMAP CONVERSION (FROM ROWIDS)
      10    9               INDEX (RANGE SCAN) OF 'RTEST2_IDX1' (NON-UNIQUE)
      11    8             BITMAP CONVERSION (FROM ROWIDS)
      12   11               INDEX (RANGE SCAN) OF 'RTEST2_PK' (UNIQUE)
    Statistics
              0  recursive calls
              0  db block gets
         300332  consistent gets
              0  physical reads
              0  redo size
            252  bytes sent via SQL*Net to client
            235  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              2  rows processed
    SQL>SELECT /*+ ordered use_hash(b) */ A.ID, B.VMONTH
      2    FROM RTEST1 A, RTEST2 B
      3   WHERE A.ID = B.ID  AND(A.ID = B.VMONTH OR B.ID = A.VMONTH)
      4  ;
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=175 Card=2 Bytes=28)
       1    0   HASH JOIN (Cost=175 Card=2 Bytes=28)
       2    1     TABLE ACCESS (FULL) OF 'RTEST1' (Cost=20 Card=100000 Bytes=700000)
       3    1     TABLE ACCESS (FULL) OF 'RTEST2' (Cost=20 Card=100000 Bytes=700000)
    Statistics
              9  recursive calls
              0  db block gets
            256  consistent gets
            156  physical reads
              0  redo size
            252  bytes sent via SQL*Net to client
            235  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              2  rows processed

  • How can i open the left side of the G4?

    Hello!
    Have G4 that is starting to sound like an aeroplane. I opened the four screws on the left side of teh computer but it still hangs on to the apple so I can not get the side off. I tried to pull a little but i is stuck.
    How do I open the side after i have removed the screws?
    There are a lot of dust bunnies/rats etc.
    Thanks in advance
    Per-Anders

    There is a plastic stand-off, that's attached to the (inside) center of the side panels. When pressed into place, two tabs snap-lock the panel securely to the chassis. For the left side, removal of the internal fan assembly will provide access to these two tabs. Gently squeeze them together, and the panel will be released. To avoid breakage, don't use excessive force on them. The right panel requires removal of the logic board, to access the catch/release tabs.

  • My import takes days to complete..... How can I tune the import????

    I have several Peoplesoft CIS tables that I need to refresh to my dev/tst/wrk environments. Some of tables have millions of records. I can't take a subset of the data because the Peoplesoft CIS applications doesn't quite use relations properly.
    I export the tables.....
    Mark the indexes unusable in the env to be refreshed
    Truncate the tables in the env to be refreshed
    Then start my import.....
    This is where the problem starts... The export takes an hour and 45 min, where the import took 3 days and still didn't complete. The total size of the dump is 17,638,070 KB.
    Please help, or is there a better way....
    Cheryl Sewell
    Sr. Oracle DBA

    I export the tables......Mark the indexes unusable in the env to be refreshed
    Truncate the tables in the env to be refreshed
    Then start my import.....1)Import with rows=n indexes=n constraints=n
    2)Import with ignore=y indexes=n constraints=y or create the indexfile for indexes and create the indexes with parallel nologging.
    3)use Large buffer and commit=n
    [http://www.dba-oracle.com/oracle_tips_load_speed.htm]

  • In phone contact I don't get a keypad when trying to search, edit or add contacts how can I make the key pad appear?

    Since updating with 7.1 I no longer get a keypad appearing when I try to search, edit or add contacts in the phone - how can I get the keypad to appear?

    Hello there, English Springer Spaniel.
    The following Knowledge Base article offers some great steps for troubleshooting an app that isn't performing as expected:
    iOS: Understanding multitasking
    http://support.apple.com/kb/ht4211
    If an app doesn't respond to your input, or doesn't perform as expected, do the following, testing after each step:
    Check for app updates.
    Force the app to close.
    Restart your device.
    Update your iOS device.
    Learn more about troubleshooting apps.
    Thanks for reaching out to Apple Support Communities.
    Cheers,
    Pedro.

  • How can I access the Attribute Values from the Search Region

    Hi all,
    I have a table which contains Company id, department id, and PositonId. For a particular Company and Department there may be multiple records.
    I have to pupulate a table which contains the position and other details that comes under a particular Department and Position based on the selection in the Three comboBoxes.
    Also I have to populate a select many Shuttle to add new postions and records under a particular Department.
    I created a query panel *(Search Region)* for the serch and a table to display the data. That is working fine.
    Now the issue is I am using a view criteria to populate the shuttle with two bind variables ie, DepartmentId and CompanyId.
    If the serach will return a resuktant set in the table it will also pupulate the correct records, otherwise ie, if the if the serch result is empty the corresponding iterator and the attribute is setting as null.
    SO I want to access the attribute values from the Search Region itsef to populate the shuttle.
    I don't know how can I access the data from the Search Region.
    Please Help.
    Regards,
    Ranjith

    you could access the parameters entered in search region by the user as follows:
    You can get handle to the value entered by the user using queryListener method in af:query.
    You can intercept the values entered as described
    public void onQueryList(QueryEvent queryEvent) {
    // The generated QueryListener replaced by this method
    //#{bindings.ImplicitViewCriteriaQuery.processQuery}
    QueryDescriptor qdes = queryEvent.getDescriptor();
    //get the name of the QueryCriteria
    System.out.println("NAME "+qdes.getName());
    List<Criterion> searchList = qdes.getConjunctionCriterion().getCriterionList();
    for ( Criterion c : searchList) {
    if (c instanceof AttributeCriterion ) {
    AttributeCriterion a = (AttributeCriterion) c;
    a.getValues();
    for ( Object o : a.getValues()){
    System.out.println(o.toString());
    //call default Query Event
    invokeQueryEventMethodExpression("#{bindings.ImplicitViewCriteriaQuery.processQuery}",queryEvent);
    public void onQueryTable(QueryEvent queryEvent) {
    // The generated QueryListener replaced by this method
    //#{bindings.ImplicitViewCriteriaQuery.processQuery}
    QueryDescriptor qdes = queryEvent.getDescriptor();
    //get the name of the QueryCriteria
    System.out.println("NAME "+qdes.getName());
    invokeQueryEventMethodExpression("#{bindings.ImplicitViewCriteriaQuery.processQuery}",queryEvent);
    private void invokeQueryEventMethodExpression(String expression, QueryEvent queryEvent){
    FacesContext fctx = FacesContext.getCurrentInstance();
    ELContext elctx = fctx.getELContext();
    ExpressionFactory efactory = fctx.getApplication().getExpressionFactory();
    MethodExpression me = efactory.createMethodExpression(elctx,expression, Object.class, new Class[]{QueryEvent.class});
    me.invoke(elctx, new Object[]{queryEvent});
    Thanks,
    Navaneeth

  • I down loaded sygic on my iPhone 3s but the icon is missing even in the search but when I want to download it again ,it say this application is present, how can I make the icon to show up

    I down loaded sygic on my iPhone 3s but the icon is missing even in the search but when I want to download it again ,it say this application is present, how can I make the icon to show up

    - Have you tried a reset. Nothing is lost
    Reset iPod touch: Hold down the On/Off button and the Home button at the same time for at
    least ten seconds, until the Apple logo appears.
    - Try syncing  the iPod to your computer. Then delete from iTunes and sync. that should delete it from the iPod. Then redownload it.

  • How can I use the same "I Tunes" on two different computers

    I’m using two different kinds of Personal Computer: One is Desktop PC And the other one is Notebook .
    In each computer there are the same songs and when I get the new ones to the Desktop I want them to be placed on the Notebook or reverse.
    Where does the I Tunes save the playlist on the hard drive ?
    I have prepared a playlist on my Notebook and want it to be seen on the Desktop but I dont want to fallow the steps File > Library > Export Playlist on the Notebook. Is there any other way to make this issue instead of the mentioned steps.
    How can I see the same Playlists and songs on two different computers ( notebook and desktop) including the updating processes.
    Operating systems of the computers:
    Desktop: XP Pro
    Notebook: Vista Bussiness

    I use SyncToy 2.0 to keep two instances of my library in sync. SyncToy's preview will show which files it is about to update giving you a chance to spot unexpected changes and during the run only the changed files will be copied saving lots of time.
    As long as I sync after making updates at one instance of the library before making any updates at the other then everything works just fine. I periodically run iTunes Folder Watch to check for any orphaned entries or new items that haven't been imported into the active library. If your machines are regularly networked together this process is fairly straightfoward. Mine are in disparate locations so I use one of the (physically) small WD My Passport host powered drives which I take between home & work, synchronising at either end. This gives me three complete copies of my library so I'm covering backup & synchronisation in the same operation.
    When connecting my iPod at either location iTunes recognises itself as the "home" library for the iPod so I'm able to use the sync with selected playlists option without getting warning messages about the iPod being synced with a different library.
    tt2

  • How can I change the default Google search engine in Firefox 8 from google.fr to google.co.uk? Yes, I live in France with a French ISP, but English is my mother tongue and I want UK based responses.

    How can I change the default Google search engine in Firefox 8 from google.fr to google.co.uk? Yes, I live in France with a French ISP, but English is my mother tongue and I want UK based responses.
    I'm using XP Pro.

    You can find search engines on the Mycroft Project website.
    * http://mycroft.mozdev.org/
    * http://mycroft.mozdev.org/google-search-plugins.html

  • In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)?

    Hello, all.
    In iTunes 11.0.2.26, an Albums search by track names returns albums as if they only have one track on them, but I still want to access the entire album. How can I have the search results show the entire album (with just the searched for name highlighted)? For instance, I'm wanting to play an album with a particular track on it or I'm searching for albums that include that track. iTunes incorrectly assumes that all I'm after is that one track and then incorrectly displays the album as if there is only one ttrack on it. This is a bonkers default setting. Can I change this?

    Click the search magnifying glass and uncheck "Search entire library".
    Type in the name of the track.
    Click the album of interest to show tracks.
    Select the track.
    Press the X in the search box to clear the search.
    Double click the track you want to start playing first.
    tt2

  • The e mail address in my I tunes setting is different but when I update my apps a different e mail address come . How can I delete the e mail address which shows for updating apps

    The e mail address which is in the setting of my I tune store does not show up when I install apps or update them it shows a different email address how can I delete the e mail which shows up while updating apps &amp; switch to the one already in my settings

    All apps include DRM protection that is tied to the Apple ID that was used to download the apps.
    This means the apps that need an update were downloaded with the Apple ID you are being prompted for.

  • My wife has an I Tunes account on our PC, I have an I tune account on my Mac Book Pro.   How can I get the music from her account on the PC to my account on the Mac Book and I phone?

    My wife has an I Tunes account on our PC, I have an I tune account on my Mac Book Pro.   How can I get the music from her account on the PC to my account on the Mac Book and I phone?

    IflyDavie wrote:
    I need help to delete my icloud account from my iPad.  It has "Find my iPad" on it and won't let me delete without the old password.  I don't want to reset password as it will require reset of Mac Book Pro and 2 iphones.  Help appreciated.
    Your description of the problem is a bit confusing.  Do you have ONLY ONE Apple ID or do you have MORE THAN ONE?

  • I just installed Firefox 5. How can I remove the Bing search from the address bar? I don't want to see Bing at all.

    I just installed Firefox 5. How can I remove the Bing search from the address bar. I don't want to see Bing at all. I tired the Firefox options, right-clicking on the search field and the toolbar selection drop-down but could not find a way to get rid of that unwanted search window.

    *'''at the bottom of firefox''' there is a weird looking greenish circle with a lightning bolt in it*
    1. click it and hover over to '''PREFERENCES'''.
    2. click the second circle that say's '''BING.'''
    3. '''Un-check''' both boxes.
    4. you're done :)
    Note: it's not going to show the google symbol encrypt when you open a new tab it's just going to automatically use google as a search engine.

  • How can I remove the Location column from the search results in a .chm file?

    How can I remove the Location column from the search results in a .chm file?
    I generated the file in Robohelp HTML 9.
    As far as I know it's used when you've combined more than one source into the final help file. It is possible (though I don't remember doing it) that I did that once a couple of years ago but now I'm only using one source - the project that's generating the .chm.
    Can anyone tell me how I can remove it?
    Thanks
    Tom

    In Project Setup look at the Window properties. I think you will find Advanced Search is ticked.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • How can I get a search bar added to my email archives screen to make it easier to search for the right archives folder, Samsung has one so I was surprised to see that I have to scroll up and down to find the right folder?

    How can I get a search bar added to my email archives screen to make it easier to search for the right archives folder, Samsung has one so I was surprised to see that I have to scroll up and down to find the right folder?

    Start Firefox in <u>[[Safe Mode]]</u> to check if one of the extensions is causing the problem (switch to the DEFAULT theme: Firefox (Tools) > Add-ons > Appearance/Themes).
    * Don't make any changes on the Safe mode start window.
    * https://support.mozilla.com/kb/Safe+Mode
    * https://support.mozilla.com/kb/Troubleshooting+extensions+and+themes
    You can modify the pref <b>keyword.URL</b> on the <b>about:config</b> page to use Google's "I'm Feeling Lucky" or Google's "Browse By Name".
    * Google "I'm Feeling Lucky": http://www.google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=
    * Google "Browse by Name": http://www.google.com/search?ie=UTF-8&sourceid=navclient&gfns=1&q=
    * http://kb.mozillazine.org/keyword.URL
    * http://kb.mozillazine.org/Location_Bar_search

Maybe you are looking for

  • Send Apple a problem report

    I have been having trouble with Illustrator quiting unexpectedly. Apple gathers the info and tries to send the problem but for some reason I get a message that it couldn't submit the report and it has failed and to try again. I have checked my securi

  • Report Execution issues after cube comperssion

    Hi Everyone. We had performance issues with respect to report execution in SAP portal. After the analysis we have realised that the cube is growing in its size and reached 200 million already. As per SAP suggestion, we had compressed the cube and the

  • Startup Problem in Windows 2003 Server

    Hi, I was using oracle 9.0.2 with Windows 2003 & i had to format & re-install my machine. Then I tried to install 9i Application Server & failed in between. But I noticed that the setup has already installed oracle 8i database instance. Then I quit c

  • Keep imported photos sync

    I deleted the folder on my computer that had all my photos in and now if I try to sync my ipod it will delete all of the photos on the ipod. Isn't there some tool or anything at all that I can copy the pictures from my ipod pictures library back to m

  • IPhone 3Gs: Error (-1) after attemped update to iOS 5

    After attempting to update to iOS 5 on my 3Gs, my iphone becomes bricked and enters recovery mode. The update proceeded as normal without issue untill it asked me to for a restore. Now, after every attempt to restore I receive the message: unknown er