Performance problem: select *.

Dear experts,

We organize that regularly demand it creates (automatically deleted after a certain time) views. These views Where created from "views of example" by omitting unused columns.
Let's say we have 10 table envolved in this view, columns of 50 to 100 each. So, what's the least expensive? Reduce the number of columns involved in joins with nested loops, so Ford to analyze the statement again and again, leaving the number of columns, use bind variables or reducing analysis?

The analysis takes 70 seconds.

Best regards

Matthias

The plan is:

Plan
INSTRUCTION SELECT ALL_ROWS cost: 35 bytes: 1.175 cardinality: 1
ORDER of SORTING 86 BY cost: 35 bytes: 1.175 cardinality: 1
Cost EXTERNAL 85 NESTED LOOPS: 34 bytes: 1.175 cardinality: 1
Cost EXTERNAL 76 NESTED LOOPS: 30 bytes: 1.101 cardinality: 1
Cost EXTERNAL LOOPS IMBRIQUEES 74: 29 bytes: 1.096 cardinality: 1
Cost EXTERNAL 72 NESTED LOOPS: 28 bytes: 1,091 cardinality: 1
Cost EXTERNAL 70 NESTED LOOPS: 27 bytes: 1,086 cardinality: 1
Cost EXTERNAL 68 NESTED LOOPS: 26 bytes: 1.081 cardinality: 1
Cost EXTERNAL 66 NESTED LOOPS: 25 bytes: 1.076 cardinality: 1
Cost EXTERNAL LOOPS IMBRIQUEES 64: 24 bytes: 1,071 cardinality: 1
Cost of 62 LOOPS IMBRIQUEES: 23 bytes: 1,066 cardinality: 1
Cost 59 NESTED LOOPS: 22 bytes: 1,058 cardinality: 1
Cost of 56 LOOPS IMBRIQUEES: 21 bytes: 1,044 cardinality: 1
Cost of LOOPS IMBRIQUEES 53: 20 bytes: 1,027 cardinality: 1
Cost of 50 LOOPS IMBRIQUEES: 19 bytes: 995 cardinality: 1
Cost of LOOPS IMBRIQUEES 47: 18 bytes: 978 cardinality: 1
Cost of LOOPS IMBRIQUEES 44: 17 bytes: 969 cardinality: 1
Cost of 41 LOOPS IMBRIQUEES: cardinality of 16 bytes: 952: 1
Cost of 38 IMBRIQUEES LOOPS: 15 bytes: 935 cardinality: 1
Cost 35 NESTED LOOPS: 14 bytes: 858 cardinality: 1
Cost 32 NESTED LOOPS: cardinality 13 bytes: 850: 1
Cost 29 NESTED LOOPS: 12 bytes: 833 cardinality: 1
Cost of 26 LOOPS IMBRIQUEES: 11 bytes: 824 cardinality: 1
Cost EXTERNAL 23 NESTED LOOPS: 10 bytes: 724 cardinality: 1
Cost 20 NESTED LOOPS: 8 bytes: 693 cardinality: 1
Cost 17 NESTED LOOPS: cardinality of 7 bytes: 676: 1
Cost 14 NESTED LOOPS: cardinality of 6 bytes: 659: 1
Cost 11 NESTED LOOPS: cardinality of 5 bytes: 638: 1
Cost 9 NESTED LOOPS: 5 bytes: 634 cardinality: 1
7 LOOPS IMBRIQUEES cost: 5. cardinality bytes: 627: 1
Cost of 5 LOOPS IMBRIQUEES: 5 bytes: 621 cardinality: 1
3 INLIST ITERATOR
TABLE 2 ACCESS BY INDEX ROWID TABLE SCDAT. TRANSMAIN cost: 5 bytes: 615 cardinality: 1
1 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRANSMAIN cost: cardinality 4: 2
4 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRASTATTEXTS cost: cardinality of 0 bytes: 6: 1
6 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRASTATTEXTS cost: cardinality of 0 bytes: 6: 1
8 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRCELMTEXTS cost: cardinality of 0 bytes: 7: 1
10 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRCBUS cost: cardinality of 0 bytes: 4: 1
TABLE ACCESS BY INDEX ROWID 13 TABLE SCDAT. TRCBUSTEXTS cost: 1 bytes: cardinality 1: 21
12 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRCBUSTEXTS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 16 TABLE SCDAT. TRCELM cost: 1 bytes: cardinality 1: 17
15 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRCELM cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 19 TABLE SCDAT. TRCINT cost: 1 bytes: cardinality 1: 17
18 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRCINT cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 22 TABLE SCDAT. Cost TRANSFWD: 02:00 cardinality: 1
21 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_TRANSFWD cost: cardinality 1: 1
TABLE ACCESS BY INDEX ROWID 25 TABLE SCDAT. FXFORWLEGS cost: 1 bytes: cardinality 1: 100
24 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_FXFORWLEGS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 28 TABLE SCDAT. FXFORWARDS cost: 1 bytes: cardinality 1: 9
27 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_FXFORWARDS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 31 TABLE SCDAT. CURCROSSES cost: 1 bytes: cardinality 1: 17
30 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_CURCROSSES cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 34 TABLE SCDAT. Cost of CURRENCIES: 1 bytes: cardinality 8: 1
33 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_CURRENCIES cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 37 TABLE SCDAT. M_SECURITIES cost: 1 bytes: cardinality 1: 77
36 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_M_SECURITIES cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 40 TABLE SCDAT. M_PARTNERS cost: 1 bytes: cardinality 1: 17
39. THE INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_M_PARTNERS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 43 TABLE SCDAT. M_PARTNERS cost: 1 bytes: cardinality 1: 17
42 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_M_PARTNERS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 46 TABLE SCDAT. M_SECURITIES cost: 1 bytes: cardinality 1: 9
45 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_M_SECURITIES cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 49 TABLE SCDAT. M_PARTNERS cost: 1 bytes: cardinality 1: 17
48 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_M_PARTNERS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 52 TABLE SCDAT. Cost of USERS: 1 bytes: cardinality 1: 32
51. THE INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_USERS cost: cardinality 0: 1
TABLE ACCESS BY INDEX ROWID 55 TABLE SCDAT. Cost of PORTFOLIOS: bytes 1: cardinality 1: 17
54. THE INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_PORTFOLIOS cost: cardinality 0: 1
58 TABLE ACCESS BY INDEX ROWID TABLE SCDAT. Cost of TRADE: 1 bytes: cardinality 1: 14
57. THE INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_PORTGROUPS cost: cardinality 0: 1
61 TABLE ACCESS BY INDEX ROWID TABLE SCDAT. Cost of SCRIPT: 1 bytes: cardinality 8: 1
60 INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_CUSTODIES cost: cardinality 0: 1
63 INDEX RANGE SCAN INDEX SCDAT. R_D_SECURITIES_SECIK cost: 1 bytes: cardinality 5: 1
65 INDEX RANGE SCAN INDEX SCDAT. R_D_PARTNERS_PARIK cost: 1 bytes: cardinality 15: 3
67 INDEX RANGE SCAN INDEX SCDAT. R_D_PARTNERS_PARIK cost: 1 bytes: cardinality 10: 2
69 INDEX RANGE SCAN INDEX SCDAT. R_D_SECURITIES_SECIK cost: 1 bytes: cardinality 5: 1
71 INDEX RANGE SCAN INDEX SCDAT. R_D_PARTNERS_PARIK cost: 1 bytes: cardinality 10: 2
73 INDEX RANGE SCAN INDEX SCDAT. R_D_PARTNERS_PARIK cost: 1 bytes: cardinality 10: 2
75 INDEX RANGE SCAN INDEX SCDAT. R_D_SECURITIES_SECIK cost: 1 bytes: cardinality 5: 1
84 SEE PUSHED PREDICATE VIEW SCDAT. A_TRANS_COSTS cost: 4 bytes: 74 cardinality: 1
FILTER 83
82 NESTED LOOPS
Cost 80 NESTED LOOPS: cardinality of 4 bytes: 87: 1
78 TABLE ACCESS BY INDEX ROWID TABLE SCDAT. Cost TRANSCOSTTAX: 03:00 cardinality: 1
77 INDEX RANGE SCAN (SINGLE) SCDAT INDEX. P_TRANSCOSTTAX cost: cardinality 2: 1
79. THE INDEX UNIQUE INDEX (SINGLE) SCDAT SCAN. P_COSTS cost: cardinality 0: 1
81 TABLE ACCESS BY INDEX ROWID TABLE SCDAT. Cost: 1 bytes: cardinality 1: 52

908233 wrote:

I wonder about the 'degree of equality' leeds cursor re - use. Failing to columns there one any influence on cursor re - use?

Yes. The client code (in this case happens to PL/SQL) creates 3 sliders on the same table, using 3 different projections of SQL. This translates into 3 different cursors in the pool shared SQL.

SQL> declare
  2          cursor c1 is select * from emp;
  3          cursor c2 is select ename from emp;
  4          cursor c3 is select empno from emp;
  5  begin
  6          open c1;
  7          close c1;
  8
  9          open c2;
 10          close c2;
 11
 12          open c3;
 13          close c3;
 14  end;
 15  /

PL/SQL procedure successfully completed.

SQL>
SQL> col sql_text format a25
SQL> select
  2          rownum,
  3          sql_text
  4  from       v$sqlarea
  5  where      upper(sql_text) like 'SELECT%FROM EMP%'
  6  and        sql_text not like '%rownum%'
  7  /

    ROWNUM SQL_TEXT
---------- -------------------------
         1 SELECT EMPNO FROM EMP
         2 SELECT * FROM EMP
         3 SELECT ENAME FROM EMP

SQL> 

By failing to columns has been done to improve performance, because the developers say.

A correct statement. At a minimum, this decreases the amount of data that the SQL cursor should send to the client. At best, it provides an implementation plan still more optimal that requires less i/o.

Tags: Database

Similar Questions

  • Performance problem when a direct IO option is selected

    Hello Experts,

    One of my clients has a performance problem when a direct IO option is selected. Reports that there was increase in the memory usage of storage Direct to e/s is selected compared to the option of buffering of i/o.

    There are two applications on the server of type OSB. When using IO buffer warnings, has experienced a high level of read and write I / O direct i/o reduced the read and write I / O, but greatly increases the memory usage.

    Other information-

    (a) Details of the environment

    HSS - 9.3.1.0.45, AA - 9.3.1.0.0.135, Essbase - 9.3.1.2.00 (64-bit)
    OS: Microsoft Windows x 64 (64-bit) 2003 R2

    (b) what is the use of memory when it is buffered for i/o and direct i/o is used? What running of calculations, restructuring of the database and the database queries? These processes take a lot of time for execution?

    Application 1: 700 MB buffered, 5 GB live
    Application 2: Buffering 600 MB to 1.5 GB, 2 GB Direct
    Calculation time can increase from 15 minutes to 4 hours. Even with the restructuring.


    (c) what is the current database cache; Cache data files and cache Index values?

    Application 1: Buffering (index 80 MB, 400 MB of data), Direct (Index 120Mo;) 4 GB data file, given 480 MB).
    Application 2: Buffering (index 100MB, 300 MB of data), Direct (Index of 700 MB, 1.5 GB, 300 MB of data from data file)


    (d) what is the total size of the files ess0000x.pag and ess0000x.ind files?

    Application 1: Page 20 GB, 1.7 GB of the Index file.
    Application 2: Page 3 GB, index of 700 MB.

    Any suggestions on how to improve performance when direct i/o is enabled? All performance records in above scenario would be a great help.

    Thanks in advance.



    Kind regards
    Sudhir

    This post understanding buffered of e/s and e/s direct may be of some use to you.

    See you soon

    John
    http://John-Goodwin.blogspot.com/

  • WRT54GS - wireless performance problem

    Dear someone

    I am currently having performance problems with my WRT54GSv1.1

    Just received my new internet connection to 30Mbit. Unfortunately, I am not able to download at that speed. If I connect via one of the linksys router's ethernet ports, I'm a happy person, but using the wireless makes me a little less happy.

    Wireless: 15Mbit/s

    Through the cable: 27Mbit/s

    Network information:

    The distance between the router and the computer laptop 3-4 meters

    Linksys WRT54GSv1.1 - Firmware Version: v4.71.4

    Network wireless - g only mode

    TV - 6 (because all the surrounding neighbor use 10-11, I noticed using Cain Abel & wireless discovered 4.9.29)

    Security: WPA2-Personal (TKIP + AES)

    All other settings are default (just reset to the factory settings).

    Laptop:

    Windows Vista Business SP1 32-bit

    Intel PRO/Wireless 3945ABG (installed the latest drivers from the website of intel, default settings)

    When you check the diagnostic of Intel tools, it tells me the link is 54 megabits and pushes meter packages of 54 megabits, while all lower speeds remain the same.

    More diagnostic information:

    Percent missed beacons: 0

    Percent transmit errors: 18

    Current Tx power: ~ 32 mW (100%)

    Supported power levels: 1.0 mW - 32.0 mW.

    Hope someone can help me here.

    Thanks in advance!

    Kind regards

    Ski Klesman

    Although wireless g "connects" to 54 Mbit/s, the maximum possible wireless "data rate" (in ideal laboratory conditions) is only about 20 to 25 Mbit/s.  Unfortunately, the phrase "in ideal laboratory conditions" generally excludes home intrusion!

    The aerial transmission for wireless connections is higher than for wired connections.   Thus, most individuals find that their Wi - Fi connection works at 50% to 70% of their speed of wired (LAN).  Your wired LAN being 27 Mbps connection speed, your 15 Mbps wireless speed is within normal limits.

    You might be able to tweak a bit more speed from your wireless network by optimizing all your wireless settings.  Here are a few suggestions:

    I guess you want actually to WPA2 encryption.  If so, set to AES only.   When you set the router to TKIP and AES, you actually tell the router to accept a WPA or WPA2 connection.

    Also, give your network a unique SSID. Do not use "linksys". If you use "linksys", you can try to connect the router to your neighbor. Also set 'SSID Broadcast' to 'active '. This will help your computer to find and lock on the signal from your router.

    Bad wireless connections are often caused by interference from other 2.4 GHz devices. This includes cordless phones, baby monitor wireless, microwave ovens, wireless mice and keyboards, wireless speakers and wireless network from your neighbor. In rare cases, Bluetooth devices can interfere. Even some 5 + GHz phones also use the 2.4 Ghz band. disconnect these devices and see if that solves your problem.

    In your router, try another channel. There are 11 channels in the band of 2.4 GHz channel 1, 6 or 11 generally works better. Discover your neighbors and see what channel they use. Because the channels overlap, try to stay at least + 5 or - 5 channels of your more powerful neighbors. For example, if you have a powerful neighbour on channel 9, try any channel 1 to 4.

    Also, try putting the router about 4 to 6 feet above the ground in an open area. Do not place behind your screen or other computer equipment or speakers. The antenna must be vertical.

    In addition, in the computer, go to your wireless software and go to 'Favorite networks' (sometimes called 'Profiles'). There are probably a few listed networks. Remove any network called "linksys". Also remove any network that you don't recognize or that you no longer use. If your current network is not listed, enter its information (SSID, encryption (if any) and key (if any)). Select your current network and make your network by default, then set it to auto login. You may need to go to 'settings' to do this, or you may need to right click on your network and select 'Properties' or 'settings '.

    If you continue to have problems, try the following:

    For wireless g routers, try setting the "baud rate" at 54 Mbps.

    If you still have problems, download and install the latest firmware for your router. After an update of the firmware, you must reset the default router, and then configure the router again from scratch. If you have saved a router configuration file, DO NOT use it.

    I hope this helps.

  • 4.2 APEX performance problem

    Hi all

    We are facing the problem of performance when we are by selecting one of the underside of responsibility that rests in the Organization as if we select APEX_01 Reporting ALL then in this case, we can see all the organization such as ETL, BRN, CHICKEN ect in home page, but I am facing performance problem when it forms that select area of responsibility to the home page. Please indicate how to check this page's performance in the APEX and also advise how to solve this problem.

    apex_performance_issue_4.2.jpg

    LnTInfotech wrote:

    so you want to say below takes more time and we need to address this request?

    15.34901 224.01663 ... Run the statement: SELECT DISTINCT papf.full_name a, papf.full_name b
    OF po_agents pa
    per_all_people_f women's wear
    org_organization_definitions org
    WHERE 1 = 1
    AND papf.person_id = pa.agent_id
    AND org.organization_CODE = NVL(:P1_WARE_HOUSE,org.organization_CODE)
    AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date
    AND EXISTS SELECT (SEPARATE 1
    OF po_headers_all poh
    WHERE poh.agent_id = pa.agent_id
    AND poh.org_id = org.operating_unit)

    This request seems to be missing a join. An obligation to use DISTINCT in application code usually indicates that there is something seriously wrong with the data model or query...

  • Performance problem - oracle 10.2.0.4

    HI Experts,

    Today I met a performance problem. I pulled a simple query to get the number of records in a table existed in the databases of PROD and QA. The two databases are the same settings at parameter level. But when I launch the application, Prod database takes 10 minutes to get the result. Not sure why prod base it takes a lot of time.

    Additional information:

    ---------------------

    The number of lines is almost the same on the two databases

    OPERATING SYSTEM: IBM AIX

    Oracle: 10.2.0.4

    QA Database - explain plan

    ==========================

    06:40:49 SQL > select count (*) in the Siebel.s_prod_baseline;

    COUNT (*)

    ----------

    42146408

    Elapsed time: 00:00:45.35 == > just 45 seconds

    PLAN_TABLE_OUTPUT

    --------------------------------------------------------------------------------

    Hash value of plan: 645963650

    -------------------------------------------------------------------------------

    | ID | Operation | Name               | Lines | Cost (% CPU). Time |

    -------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |                    |     1.  1165 (1) | 00:00:14 |

    |   1.  GLOBAL TRI |                    |     1.            |          |

    |   2.   INDEX SCAN FULL | S_PROD_BASELINE_P1 |    42 M |  1165 (1) | 00:00:14 |

    -------------------------------------------------------------------------------

    Database of PROD explain plan

    ======================

    06:42:59 SQL > select count (*) in the Siebel.s_prod_baseline;

    COUNT (*)

    ----------

    42730261

    Elapsed time: 00:10:13.43 == > took more than 10 minutes

    PLAN_TABLE_OUTPUT

    --------------------------------------------------------------------------------

    Hash value of plan: 645963650

    -------------------------------------------------------------------------------

    | ID | Operation | Name               | Lines | Cost (% CPU). Time |

    -------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |                    |     1.  4160 (1) | 00:00:50 |

    |   1.  GLOBAL TRI |                    |     1.            |          |

    |   2.   INDEX SCAN FULL | S_PROD_BASELINE_P1 |    42 M |  4160 (1) | 00:00:50 |

    -------------------------------------------------------------------------------

    Could if it you please let me know why oracle it takes a lot of time prod database?

    Thank you..

    > There was another option to check why prod database behaves differently?

    Yes.  The trace file, TRACE the request and review (or the tkprof).

    Hemant K Collette

  • [ORACLE 10.2.0.5] performance problem with high enq: TX - line lock contention waiting

    Hello

    I have a performance problem involving high line response to locking conflicts that I can't wait.

    The application updates the specific table about 1200 times for my AWR report representing 2 hours.

    This update represents 98% of the db_time and wait to enq: TX - line lock conflict is:

    -83 796 waiting

    -245 441 seconds

    The application updates a row both an unprecedented SELECT UPDATES. This is the query:

    Update my_table set creationtime =: 1, modificationdate =: version 2, =: creationuserid 3, =: fortesting 4, =: 5, modificationuserid =: participation_uuid 6, =: actimenucontact 7, =: allegroid 8, =: campaign_uuid 9, =: desjardinsemployeetype 10, =: effectiveparticipationtype 11, =: family_uuid 12, =: fetchpasseport 13, =: 14, healthratingfilldate =: hoursofsleeptimecommitment 15, =: igaid 16, =: initialsubscriptiontype 17, =: minutesofsleeptimecommitment 18, =: goal 19, =: partner_uuid 20, =: 21, promotionalemails =: 22, readrules =: sccsubscriptionprovenance 23, =: = subscriptionprovenance 24,: 25, supportemails =: where the 26 uuid = : 27 and = version: 28

    Clause where is filtering on uuid which is the primary key of my_table.

    The uuid is a specific user and two users would not update the same row, what could be the reason for this wait event?

    Thank you

    Why guess when you know.

    Watch ASH data for these events to the queue.

    He'll tell you sql id as well.

  • question about a view that I have created to solve performance problems

    Dear alll;

    I have an interesting problem. I created a view to help solve some performance problems, I've had with my query

    See below
    create or replace view view_test as 
    
    Select trunc(c.close_date, 'YYYY-MM-DD') as close_date, t.names
    from tbl_component c, tbl_joborder t
    where c.t_id = t.p_id
    and c.type = 'C'
    group by trunc(c.close_date, 'YYYY-MM-DD'), t.names
    ;
    and I tried test the view using the following syntax and I get the following errors
    select k.close_date, k.names from view_test k
    where k.names = 'Kay'
    and k.close_date between to_date('2010-01-01', 'YYYY-MM-DD') and to_date('2010-12-31', 'YYYY-MM-DD')
    However, I get the below error messages
    ora-o1898: too many precision specifiers
    I Googled it and tried a lot of things online but I can't solve the problem unfortunately, and I don't know why.



                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

    What you trying to accomplish with TRUNC:

    SQL> select trunc(sysdate, 'YYYY-MM-DD') from dual;
    select trunc(sysdate, 'YYYY-MM-DD') from dual
                          *
    ERROR at line 1:
    ORA-01898: too many precision specifiers
    

    I think you meant simply TRUNC (c.close_date)

  • Performance problem in production; Please help me out

    Hi all,

    I'd really appreciate if someone can help me with this.

    Every night, the server's SWAP, Sysadmin add more space disk swap every night and for the last 4 days.
    I run ADDM report from 22:00 to 04:00 (when the server is running out of memory)
    I had the problem of performance of this query:
    RECOMMENDATION 4: SQL Tuning, 4.9% benefit (1329 seconds)
          ACTION: Investigate the SQL statement with SQL_ID "b7f61g3831mkx" for 
             possible performance improvements.
             RELEVANT OBJECT: SQL statement with SQL_ID b7f61g3831mkx and 
             PLAN_HASH 881601692
    I can't find what the problem is and why it is a source of performance problem, could you help me please
    *WORKLOAD REPOSITORY SQL Report*
    
    Snapshot Period Summary
    
    DB Name         DB Id      Instance     Inst Num Release     RAC Host        
    ------------ ----------- ------------ -------- ----------- --- ------------
    ****       1490223503 ****             1 10.2.0.1.0  NO  ****
    
                  Snap Id      Snap Time      Sessions Curs/Sess
                --------- ------------------- -------- ---------
    Begin Snap:      9972 21-Apr-10 23:00:39       106       3.6
      End Snap:      9978 22-Apr-10 05:01:04       102       3.4
       Elapsed:              360.41 (mins)
       DB Time:              451.44 (mins)
    
    SQL Summary                         DB/Inst: ****/****  Snaps: 9972-9978
    
                    Elapsed 
       SQL Id      Time (ms)
    ------------- ----------
    b7f61g3831mkx  1,329,143
    Module: DBMS_SCHEDULER
     GATHER_STATS_JOB
    select /*+ no_parallel(t) no_parallel_index(t) dbms_stats cursor_sharing_exact u
    se_weak_name_resl dynamic_sampling(0) no_monitoring */ count(*),count("P_PRODUCT
    _ID"),count(distinct "P_PRODUCT_ID"),count("NAME"),count(distinct "NAME"),count(
    "DESCRIPTION"),count(distinct "DESCRIPTION"),count("UPC"),count(distinct "UPC"),
    
              -------------------------------------------------------------       
    
    SQL ID: b7f61g3831mkx               DB/Inst: ***/***  Snaps: 9972-9978
    -> 1st Capture and Last Capture Snap IDs
       refer to Snapshot IDs witin the snapshot range
    -> select /*+ no_parallel(t) no_parallel_index(t) dbms_stats cursor_shari...
    
        Plan Hash           Total Elapsed                 1st Capture   Last Capture
    #   Value                    Time(ms)    Executions       Snap ID        Snap ID
    --- ---------------- ---------------- ------------- ------------- --------------
    1   881601692               1,329,143             1          9973           9974
              -------------------------------------------------------------       
    
    
    Plan 1(PHV: 881601692)
    ---------------------- 
    
    Plan Statistics                     DB/Inst: ***/***  Snaps: 9972-9978
    -> % Total DB Time is the Elapsed Time of the SQL statement divided 
       into the Total Database Time multiplied by 100
    
    Stat Name                                Statement   Per Execution % Snap 
    ---------------------------------------- ---------- -------------- -------
    Elapsed Time (ms)                         1,329,143    1,329,142.7     4.9
    CPU Time (ms)                                26,521       26,521.3     0.7
    Executions                                        1            N/A     N/A
    Buffer Gets                                 551,644      551,644.0     1.3
    Disk Reads                                  235,239      235,239.0     1.5
    Parse Calls                                       1            1.0     0.0
    Rows                                              1            1.0     N/A
    User I/O Wait Time (ms)                     233,212            N/A     N/A
    Cluster Wait Time (ms)                            0            N/A     N/A
    Application Wait Time (ms)                        0            N/A     N/A
    Concurrency Wait Time (ms)                        0            N/A     N/A
    Invalidations                                     0            N/A     N/A
    Version Count                                     2            N/A     N/A
    Sharable Mem(KB)                                 71            N/A     N/A
              -------------------------------------------------------------       
    
    Execution Plan
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation               | Name    | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT        |         |       |       | 24350 (100)|          |       |       |
    |   1 |  SORT GROUP BY          |         |     1 |   731 |            |          |       |       |
    |   2 |   PARTITION RANGE SINGLE|         |  8892 |  6347K| 24350   (1)| 00:04:53 |   KEY |   KEY |
    |   3 |    PARTITION LIST ALL   |         |  8892 |  6347K| 24350   (1)| 00:04:53 |     1 |     5 |
    |   4 |     TABLE ACCESS SAMPLE | PRODUCT |  8892 |  6347K| 24350   (1)| 00:04:53 |   KEY |   KEY |
    ---------------------------------------------------------------------------------------------------
     
    
    
    Full SQL Text
    
    SQL ID       SQL Text                                                         
    ------------ -----------------------------------------------------------------
    b7f61g3831mk select /*+ no_parallel(t) no_parallel_index(t) dbms_stats cursor_
                 _sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitori
                 ng */ count(*), count("P_PRODUCT_ID"), count(distinct "P_PRODUCT_
                 ID"), count("NAME"), count(distinct "NAME"), count("DESCRIPTION")
                 , count(distinct "DESCRIPTION"), count("UPC"), count(distinct "UP
                 C"), count("ADV_PRODUCT_URL"), count(distinct "ADV_PRODUCT_URL"),
                  count("IMAGE_URL"), count(distinct "IMAGE_URL"), count("SHIPPING
                 _COST"), count(distinct "SHIPPING_COST"), sum(sys_op_opnsize("SHI
                 PPING_COST")), substrb(dump(min("SHIPPING_COST"), 16, 0, 32), 1, 
                 120), substrb(dump(max("SHIPPING_COST"), 16, 0, 32), 1, 120), cou
                 nt("SHIPPING_INFO"), count(distinct "SHIPPING_INFO"), sum(sys_op_
                 opnsize("SHIPPING_INFO")), substrb(dump(min(substrb("SHIPPING_INF
                 O", 1, 32)), 16, 0, 32), 1, 120), substrb(dump(max(substrb("SHIPP
                 ING_INFO", 1, 32)), 16, 0, 32), 1, 120), count("P_STATUS"), count
                 (distinct "P_STATUS"), sum(sys_op_opnsize("P_STATUS")), substrb(d
                 ump(min(substrb("P_STATUS", 1, 32)), 16, 0, 32), 1, 120), substrb
                 (dump(max(substrb("P_STATUS", 1, 32)), 16, 0, 32), 1, 120), count
                 ("EXTRA_INFO1"), count(distinct "EXTRA_INFO1"), sum(sys_op_opnsiz
                 e("EXTRA_INFO1")), substrb(dump(min(substrb("EXTRA_INFO1", 1, 32)
                 ), 16, 0, 32), 1, 120), substrb(dump(max(substrb("EXTRA_INFO1", 1
                 , 32)), 16, 0, 32), 1, 120), count("EXTRA_INFO2"), count(distinct
                  "EXTRA_INFO2"), sum(sys_op_opnsize("EXTRA_INFO2")), substrb(dump
                 (min(substrb("EXTRA_INFO2", 1, 32)), 16, 0, 32), 1, 120), substrb
                 (dump(max(substrb("EXTRA_INFO2", 1, 32)), 16, 0, 32), 1, 120), co
                 unt("ANALISIS_DATE"), count(distinct "ANALISIS_DATE"), substrb(du
                 mp(min("ANALISIS_DATE"), 16, 0, 32), 1, 120), substrb(dump(max("A
                 NALISIS_DATE"), 16, 0, 32), 1, 120), count("OLD_STATUS"), count(d
                 istinct "OLD_STATUS"), sum(sys_op_opnsize("OLD_STATUS")), substrb
                 (dump(min("OLD_STATUS"), 16, 0, 32), 1, 120), substrb(dump(max("O
                 LD_STATUS"), 16, 0, 32), 1, 120) from "PARTNER_PRODUCTS"."PRODUCT
                 " sample ( 12.5975349658) t where TBL$OR$IDX$PART$NUM("PARTNER_PR
                 ODUCTS"."PRODUCT", 0, 4, 0, "ROWID") = :objn
                 

    Dear friend,

    Why do you think you have problems with shared pool? In the ASH report you are provided, there was just 2.5 medium active sessions and 170 requests during this period, he is very low with swimming pool shared, problems
    you have some queries that use literals, it will be better to replace literals with bind variable if possible, or you can set the init cursor_sharing parameter to force or similar, this is the dynamic parameter.
    But it is not so dramatic problem in your case!

    From ASHES of your report, we can see that top wait events is "CPU + wait for CPU", "RMAN backup & recovery i/o" and "log file sync" and 65% of your database of waiting time. And even in the background waiting events.
    If I understand well report, you have two members in your redo log groups, you have problems with log IO writer speed, check the distribution of files on the disc, newspaper editor is slow causing it to wait for the other sessions. High
    processor can be related to rman compression. Best service can we sea GATHER_STATS_JOB consumes 16% of activity 33% consumes rman and only 21% your applications and also there is something running
    SQL * more under the sys (?) account. There is from the top of the sql page, this is the sql in your application, if I understand correctly, 'scattered db reading file' event indicates that full scans have a place, is it normal that your application? If Yes, then try using
    running in parallel, as we can see in the section "Sessions running PQs Top" your report there is no running in parallel, but as I understand it there are 8 processors, try to use parallel executions or avoid full scans. But consider that
    When you do full scans in parallel PGA memory not used CMS, then decrees setting pga_aggregate_target SGA and increase respectively.

    Is there another application or a program running on the server except oracle?
    Is the performance degradation was strong, I mean yesterday, everything was ok, but today all the evil, or it was good?

    Check the reasons for the slow newspaper writer, it can greatly affect performance.
    Also of 90% of the performance problems generally because of the poor sql, poor execution plans.
    Also if you use automatic memory management, tap Settings, but you must know that in this case the settings will identify the minimum values, this is why define them to lower values in oracle can manage
    entirely.
    Don't increase your SGA at this stage, get the awr report, use @$ORACLE_HOME/rdbms/admin/awrrpt.sql, check your cover shot.

    BUT first, you must change your backup strategy, look at my first post, after that check performance again, before you do that it will be very difficult to help you.

    Good luck

  • SEM_MATCH queries performance problems

    Hello

    We run into performance problems when you use queries SEM_MATCH.

    We have a model for data (ABox) containing a triple 12 000 000.
    We have a model for the plan (TBox) containing 800 triple.
    We ran an implication of "OWLprime" and built the model and entailment index with the SEM_APIS commands.

    The number of triplets after the execution of entailment was 35.000.000 triples.

    We use the following hardware configuration:
    OS: Windows Server 2008
    CPU: Intel CPU Xeon X 5460 @3.15 GHz (2 CPUs).
    64-bit operating system.
    Memory: 32 GB

    The results below, it seems that whenever we execute a query against the index of inference, execution time increases significantly.

    Here are the results:


    1. single template query using index of inference:
    SELECT

    x
    TABLE)
    SEM_MATCH (' (? x < http://www.we.com/weo.owl#has_symptom > < http://www.we.com/weo.owl #allergyA >)',)
    SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),

    SDO_RDF_RULEBASES ('OWLPrime'), NULL, NULL, NULL)
    +);+
    Execution time: 0.02 seconds

    2.
    a.Double query model using index of inference:
    SELECT

    x, y
    TABLE)
    SEM_MATCH (' (? x < http://www.we.com/weo.owl#has_symptom > < http://www.we.com/weo.owl #allergyA >))

    +(?x RDF:type <http://www.We.com/WEO.Owl#patient>) +.

    + (? x < http://www.we.com/weo.owl#id >? y)', +.
    SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),

    SDO_RDF_RULEBASES ('OWLPrime'), NULL, NULL, NULL)
    +);+
    Run time: 127 seconds

    b. double model query without indication of inference:
    SELECT

    x, y
    TABLE)
    SEM_MATCH (' (? x < http://www.we.com/weo.owl#has_symptom > < http://www.we.com/weo.owl #allergyA >))

    +(?x RDF:type <http://www.We.com/WEO.Owl#patient>) +.

    + (? x < http://www.we.com/weo.owl#id >? y)', +.
    SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),

    NULL, NULL, NULL, NULL)
    +);+
    Execution time: 2.5 seconds


    3.
    a. triple query model using index of inference:
    SELECT
    x, y, z
    TABLE)
    SEM_MATCH (' (? x < http://www.we.com/weo.owl#has_symptom > < http://www.we.com/weo.owl #allergyA >))
    (? x rdf:type < http://www.we.com/weo.owl#patient >)
    (? x < http://www.we.com/weo.owl#id >? y)
    (? x < http://www.we.com/weo.owl#gender >? z)',
    SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),
    SDO_RDF_RULEBASES ('OWLPrime'), NULL, NULL, NULL)
    );

    Running time: 146 seconds
    b. triple query model without using the index of inference:
    SELECT
    x, y, z
    TABLE)
    SEM_MATCH (' (? x < http://www.we.com/weo.owl#has_symptom > < http://www.we.com/weo.owl #allergyA >))
    (? x rdf:type < http://www.we.com/weo.owl#patient >)
    (? x < http://www.we.com/weo.owl#id >? y)
    (? x < http://www.we.com/weo.owl#gender >? z)',
    SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),
    NULL, NULL, NULL, NULL)
    );

    Execution time: 9 seconds

    Thank you

    Doron

    If you use 11.1.0.7.0 and you have installed the 7600122 hotfix, please use:
    -Brace for the SEM_MATCH query syntax
    -Virtual model (using SEM_Models ('TOM_ONTOLOGY', 'TOM_ONTOLOGY_TA'),
    SDO_RDF_RULEBASES ('OWLPrime'))
    -ALLOW_DUP = T (as part of the parameter options of SEM_MATCH)

    For more details, please see
    http://download.Oracle.com/docs/CD/B28359_01/AppDev.111/b28397/sdo_rdf_newfeat.htm

  • On query performance problem. Need help.

    It is essentially a performance problem. I hope someone can help me with that.

    Basically, I have four old masters (150000 records), (100000 records) Child1, Child2 (50 million records!), child 3 (10000 + records)
    (please forgive the alias).

    Each record in the master has now more than one matching record in each table child (one to many).
    Also there may be any record in any or all of the tables for a particular master record.

    Now, I need to get the maximum of last_updated_date for each master record in each table 3 child and then find the maximum of
    the three obtained last_active_dates from the 3 tables.
    for example: Master ID 100, to interrogate Child1 for all Master ID 100 records and get the max last_updated_date.
    Same for the other 2 tables and get the most out of these three values.
    (I also need to deal with cases where no trace may be found in a child table to a Master ID)

    Write a procedure that uses sliders that the value of each of the performance hits of child table
    evil. And that's, I need to know the last_updated_date for each master file (all 150000 of them). It will probably take days to do this.

    SELECT MAX (C1. LAST_UPDATED_DATE)
    MAX (C2. LAST_UPDATED_DATE)
    MAX (C3. LAST_UPDATED_DATE)
    OF CHILD1 C1
    CHILD2 C2
    CHILD3 C3
    WHERE C1. MASTER_ID = 100
    OR C2. MASTER_ID = 100
    OR C3. MASTER_ID = 100

    I tried the above, but I got an error in tablespace temp. I don't think that the application is good enough at all.
    (The GOLD clause is to take care of any records in a child table. If there is an AND, then the join and then select
    No, not even if there is no record in a child table, but valid values in the other 2 tables).

    Thank you very much.

    Published by: user773489 on December 16, 2008 11:49

    You want alias to this field then.

    SELECT MAX (C.LAST_UPDATED_DATE)
    FROM
    (select child1_master_id MASTER_ID, field2, field3,... field4 from CHILD1 UNION ALL
     select child2_master_id MASTER_ID, field2, field3,... field4 from CHILD2 UNION ALL
     select child3_master_id MASTER_ID, field2, field3,... field4 from CHILD3) C
    WHERE C.MASTER_ID = 100
    

    If do you something like that, and explicitly list the columns you want.

    Edit: for something like a specific query for a MASTER_ID...

    SELECT MAX (C.LAST_UPDATED_DATE)
    FROM
    (select child1_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD1 where child1_master_id = 100 UNION ALL
     select child2_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD2 where child2_master_id = 100 UNION ALL
     select child3_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD3 where child3_master_id = 100) C
    WHERE C.MASTER_ID = 100
    

    That should give you very good performance by raising a record. But a better idea, as indicated, would be to get it all at once with a sql:

    SELECT MASTER_ID, MAX(C.LAST_UPDATED_DATE)
    FROM
    (select child1_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD1 UNION ALL
     select child2_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD2 UNION ALL
     select child3_master_id MASTER_ID, LAST_UPDATED_DATE from CHILD3 ) C
    GROUP BY MASTER_ID
    

    This will give you the max for each MASTER_ID in a sql without a cursor.

    Published by: tk-7381344, December 16, 2008 12:12

  • a defective battery in a tablet will cause performance problems of speed

    a defective battery in a tablet will cause a matter of output speed

    Hello

    Sometimes it can cause a performance problem, visit the following link to monitor how to take care of the battery:

    Taking care of your laptop battery

    http://Windows.Microsoft.com/en-us/Windows7/taking-care-of-your-laptop-battery

    In order to increase the performance of Windows XP please visit the link below:

    Windows XP performance

    http://TechNet.Microsoft.com/en-us/library/bb457057.aspx

    Reference: PC slow? Optimize your computer for peak performance

    http://www.Microsoft.com/athome/Setup/optimize.aspx

    Note: as long, the Tablet is connected to a power source it shouldn't affect the performance in itself. However, bad battery itself a performance problem.

  • Oracle 9i Java component performance problems

    Hello

    I am reorganizing a java component inherited because of performance problems.


    A java stored procedure is used to trigger a shell script that runs a java component. The component connects to a series of remote directories via ftp, gets the files and load them using slq * charger.

    Is there a better way to do this? I saw a few articles talking using a FTP interface directly from PL - SQL jump the java component entirely. It would be preferable to the current solution its?

    Thanks in advance,
    Pedro

    I am reorganizing a java component inherited because of performance problems.

    The first step is to identify what are the problems of performance, where they occur, and what causes them.

    View details on

    1. WHAT you do

    2. HOW to

    3. WHAT results you get

    4 what ARE the results you expect to get.

  • ViewObject range Paging performance problem

    Hi all

    I am facing a performance problem with the implementation of an obligation to programmatically add a number of extra where the parameters of the clause (using bind) variable in combination with range paging.

    My code looks like this

    ...
    
    ApplicationModule am = Configuration.createRootApplicationModule("services.DossierAM", "DossierAMLocal");
    ViewObject vo = am.findViewObject("DossierListView");
    
    // apply programmatic view criteria
    ViewCriteria vc = vo.createViewCriteria();
    ViewCriteriaRow vcr = vc.createViewCriteriaRow();
    vcr.setAttribute("Reference", "15/%");
    vc.addElement(vcr);
    vo.applyViewCriteria(vc, true);
    
    
    // enable range paging
    vo.setAccessMode(RowSet.RANGE_PAGING);
    vo.setIterMode(RowIterator.ITER_MODE_LAST_PAGE_PARTIAL);
    vo.setRangeSize(50);
    vo.scrollToRangePage(5); // Cause a java.sql.SQLException: Parameter IN or OUT missing for index.....debugging learned that the :vc_temp_1 bind variable is not filled
    // vo.scrollToRange(250); // Cause a java.sql.SQLException: Parameter IN or OUT missing for index.....debugging learned that the :vc_temp_1 bind variable is not filled
    
    ... 
      ...
    

    I found 2 solutions, but they both require an application of additional database that is, performance wise, is not acceptable.

    The first solution is to slip into an additional call to exectueQuery() before the call to function scrollToRangePage (int) or scrollToRange (int).

    The second solution is to use the method (int) setRangeStart instead of variants scrollToRange (Page). This method performs also 2 database calls.

    My question to you:

    Is there another way to satisfy the requirement of programming add a certain number of parameters of the additional where clause (using the variable binding) in combination with the pagination of the range without the need to perform queries of database 2?

    The code is tested with JDeveloper, 11.1.2.4.0, and 12.1.3.0.0 and behaves the same on both versions.

    Kind regards

    Steven.

    Have you tried to create truly VC with bind variable (rather than use binding implied var created by frame)?

    Something like: http://www.jobinesh.com/2010/10/creating-view-criteria-having-bind.html

    Dario

  • Performance problems since the update of 2015.6

    Hello together,

    Since I updated lightroom yesterday to version 2015.6 the performance on my machine is incredible bad.

    My system:

    -MacBook Pro (retina, mid-2012)

    -2.3 GHz Intel Core i7

    -16 GB 1600 MHz DDR3

    -NVIDIA GeForce GT 650M 1024Mo

    -OS X El Capitan (10.11.5)

    Lightroom synchronizes actually 1400 photos, but even if I stop this process, LR uses CPU so I can't work in other programs like Photoshop (updated yesterday, too). I detected this performance problem as PS freezes when I used the Healing Brush tool.

    LR.jpg

    I don't know what's happening LR, but is not ideal for my workflow.

    Does anyone have an idea?

    If I close LR I can work in PS, even though the Healing Brush tool is slower than in the version before. But I can't always close and open LR.

    Thank you

    regards Denis

    There are already dozens of threads discussing the same question in this forum as well as in the official comments forum here: https://feedback.photoshop.com/photoshop_family/categories/photoshop_family_photoshop_ligh troom

    You can restore 6.5.1 if you wish. Here's how: How do I roll back to Lightroom 2015.1.1 or Lightroom 6.1.1? Lightroom Queen

    Just replace 6.1.1 with 6.5.1

  • HP Pavilion 15-n005sg: performance problems and worsens

    Hello

    I bought this PC here is a year, has been a very good PC with good performance, but has been doing more and more slow to the month, for example, I used to run Diablo 3 on average - high specification with 60 fps constant with no performance problems, but that in the end, I can't still running at ultra low care without screen freezes and fps drops to 1-2 as well as the League of legends and other games.

    It takes more and more time for my pc to turn on, which was like 30 ~ 40 seconds not takes like 3 minutes.

    the performance gets really bad and should not happen on a pc of 1 year.

    What can I do?

    An update of the system may be your best course of action.

    Your data, files, etc. will be retained. Any Windows apps store is kept.

    Any program that came pre-installed is preserved.

    BUT all programs which are not in the above categories will have to be resettled; your games, printer, etc.

    Windows 8 system Refresh

    If you found my answer helpful please say thank you by clicking the s cursor Up icon. Thank you!

Maybe you are looking for

  • Why firefox blocks websites that I go to every day

    yesterday when I tried to go to the website of the library of the County of Richland, it says that firefox has blocked it - I want to know why and how I can unlock it - I searched for the answer and have not – this is the address that I tried to go h

  • HP laserjet p1102w driver

    I tried to download the 64-bit for the HP LaserJet P1102W printer windows 7driver for a few days, but the HP download site always tells me that the file is not found. I need this driver and my computer has no optical drive, so I need to download it.

  • Sony F55 Hard case / Soft

    I just picked up this morning my case F55 of guys in the box and thought I'd share. It's wonderful - made really intelligently. The cut out for the camera fits the plate so the R5. Out of the shelf to the right and there is plenty of space for cables

  • How to get everything connected to my domain users

    Hello Is there some way I can be rolled up to connected users on my corporate network?

  • When you try to update AVG, it shows a contradictory anti-virus software that needs to be removed

    Im trying to update my anti-virus software avg and when I get to the last step it says there is a conflicting program called vet anti virus that needs to be removed. I try to remove it and it has an error and will not allow him to be remomed. Anyone