optimization of the performance of Oracle 9

I read the paper on the optimization of performance for Oracle 9. Unfortunately, my production db is version 10. My question is: to what extent can I rely on this old book Oracle? TX

Published by: Indra Budiantho, Sep 11, 2012 20:48

Hello

Oracle 10g has several new features for performance, such as dbms_xplan.display_cursor, then a book 10 g AWR/ASH etc is usually better in your case. However, some tuning books are forever for example (Milsap and Holt) and it does not really matter tht they speak of same 8i or 9i.

Best regards
Nikolai

Tags: Database

Similar Questions

  • On the optimization of the performance in java

    What good ways to improve the performance of the code that uses a lot of strings?

    Use the algorithms and appropriate data structures.

    [url http://java.sun.com/developer/technicalArticles/Interviews/devinsight_1/] Write dumb code.

    Don't worry microoptimizations and do not "clever tricks".

    Do not assume that something will be 'slow' and then write code ugly to "fix." Writing clean, simple code using standard idioms, test it and if it does not meet your performance requirements, profile to find out where is the bottleneck bottlenecks, and once you find and correct this, test and profile again to see if the fix made a significant improvement. If it didn't, and the new code is not at least as clean as the former, then it is up to the previous code.

    All the advice above applies to all Java, coding, not only cases of heavy chain.

    The performance of major semi only channel specific/technical storage which are raised are the following. And they don't really count all that often in the real world:

    1. When you build a string in a loop, if the pieces are large or there are many pieces, using the method append() StringBuilder or StringBuffer, not running the concatenation of strings with more based on equality.

    // do this
    String s;
    StringBuilder sb = new StringBuilder();
    
    while (...) {
      sb.append(something);
    }
    
    s = sb.toString();
    
    // not this
    String s = "";
    while (...) {
      s += something;
      // or
      s = s + something;
    

    The reason for this is that with the second approach, each time in the loop, we create a new string object and copy all the characters in the previous. The first approach maintains just add characters at the end of the existing StringBuilder.

    However, this really only allows practice difference if the pieces are very large, or if there are a large number of them.

    Also note that

    String s = "a" + b + "c" + d;
    

    It is fine, because the compiler turns those in append() calls anyway.

    2. use new String() when you take a small substring of a large chain, if that little is preserved much longer than the original plu around.

    // do this
    String s1 = a_very_large_string;
    String s2 = new String(s1.substring(5, 7));
    
    // not this
    String s1 = a_very_large_string;
    String s2 = s1.substring(5, 7);
    

    The reason is that the substring using the same support as the original array. If we are done using the great chain, object String itself can become eligible for the GC, but the table of great support would remain around as long as the smaller string is alive. In this case, we will lose most of its space for just a few characters. However, when we do new String [], which creates a new object a string with its own array of support of all the characters who are part of this chain, so once the original goes, its range of support can go with it.

    If channels are on the same scale, or whether they are small or even only "kind of big", it won't be a problem. In addition, if the two lifetimes of ropes end to at about the same time, it will not be a problem.

    Yet once, however, don't go overboard. Special attention to the case I described where these techniques Don't matter.

    Edited by: jverd on October 6, 2010 22:08

    Edited by: jverd on October 6, 2010 22:10

    Edited by: jverd on October 6, 2010 22:21

  • Need to improve the performance of oracle query

    Hello
    Currently I wrote the request to get the maximun of XYZ company like this salary

    Select the salary of)
    Select the salary of the employee
    where the company = "XYZ".
    salary desc order)
    where rownum < 2;

    I thought to replace the same with the following query

    Select max (salary)
    the employee
    where the company = "XYZ";

    That one will be faster? can you provide some statistical data. It will be good if you share an oracle for this documentation.

    Thank you
    Khaldi

    Well, that's your requests, your data contained in your database, on your hardware... Anything that can have an impact. So who better to check if there is no difference in performance than yourself?

    Enable SQL tracing, run the statements, then analyze trace (with the help of tkprof or similar) files and look at the differences.

  • What is Tri merger and what the syntax or how to sort merge in the optimization of the performance


    Hello

    new IAM for performance how to sort merge and when to do it.

    Thanks in advance.

    Hello

    Merge sort is a method to join two sets of results, which is essentially:

    -First game on the join results sort key

    -Then put spell on the join key

    -Then merge them to produce the output

    Like other methods (hash join, nested... loops joins) the cost of the operation is calculated by the CBO, which chooses the cheaper plan.

    You can force the plan with the use_merge hint... but why would you do?

  • performance on oracle db - session

    Hi experts,
    I am a newbie of oracle db.
    I need to test the performance on oracle db.
    I use oracle 10g Enterprise to test.

    I use applications to fire 15 different sqls in db almost at the same time.

    the sqls are almost the same. only the period filter where clause are different.

    I saw that on the EM (Business Manager).

    There are only 10 sessions.

    But I'm on fire 15 sqls.

    the db can only manage 10 sessions at the same time?

    can it be configured to manage multiple sessions at the same time?

    There are 2 CPUs in the database.

    If there is 4 processors in the comic book, it can handle more sessions?

    Or she calculates faster?

    Forreging wrote:

    Here is the captured table of enterprise manager.
    http://img266.imageshack.us/img266/3520/TopAct.PNG

    I don't use a lot of Enterprise Manager (the company I get too stopped years ago cost licensing reasons). Also, I remember seeing less precise data the old based on Java Enterprise Manager - so I prefer rather to look directly the views v$ performance instead.

    When there are 15 sqls to run, I found that it runs 10 sqls first (I guess that 1 sql occupies 1 session)

    A SQL looks like a source code of the program. Oracle receives it, analysis and it compiles and creates a '+' binary running program + for him - a bit like a C compiler will compile C code. This program compiled in Oracle is called a cursor. It is stored in the shared pool. This "compilation" is called a difficult analysis.

    If another session sends the same source code SQL to Oracle, it does not compile a new cursor for this - he sees that there's already a compiled copy (cursor) for this SQL source and re - use this slider. It's called a soft analysis.

    If all 15 SQLs are the same, so there will be a single slider in the shared pool. One of these 15 sessions will show a difficult analysis. The other 14 sessions will show a fresh analysis.

    One of the fundamentals for the scalability and performance of Oracle is to use this feature of Oracle properly. Have Oracle hard analysis a SQL once and then everything just use and reuse this slider again. The same session. Other sessions. (This also requires correctly using bind variable with SQL)

    and the first 10 sqls were executed, it runs the next 5 sqls.

    To be honest - I wouldn't bother with Enterprise Manager in this case. It is much simpler and easier to just put a couple of SQL * scripts together.

    in fact, I just need to monitor performance on db.

    Why? For what reason? What metrics are to be considered? And if a metric like "+ buffer Cache Hit Ratio +", explains 90%, what does that mean? How do you determine that it is good or bad?

    You should know what requirements and commercial reasons are for this "performance monitoring" - because if you don't know what the needs/problems/issues are detailed... How the hell can correctly solve you these? A solution is only as good as the definition of the problem.

    And this applies to monitoring the performance too.

    How handles when there are so many simultaneous tasks

    15 sessions are few concurrent tasks.

    With regard to how Oracle handles - it depends on how connect these sessions (the process template can be shared or dedicated server), and how these processes?

    To understand the basics behind all of this, you must read the guide to the Concepts of Oracle® database .

  • Optimize the performance of Windows 8.1

    Hi all

    I bought a HP Envy dv6 (including Windows 8) in November 2012.

    For all those people who have good experiences with Windows 8.1... I was wondering what software you used to optimize performance?

    In the past I had good experiences with...

    Avast

    Advanced System Care 6

    CCleaner

    IObit Malware Fighter

    Driver boost

    However, in Windows 8, it seems that some of them were because of issues with apps from metro.  I had to reset my computer to factory settings countless times because for some reason any my metro apps can not maintain an INTERNET CONNECTION.

    You guys are using any antivirus software or registry/maintenance software to optimize the performance of your PC which has not caused any problems?  Leave the windows firewall "on" your best option for protection?

    Chrome or Internet Explorer?

    Make adjustments to settings PC (like the game "never notify" in the settings of the user account, etc.)?

    What are some software 'must have' that you found useful?

    Thanks in advance!

    Hello!

    Thanks for posting in the forum to Support HP and you thank for your trust in HP!

    I'll try to answer some of your questions:

    For all those people who have good experiences with Windows 8.1... I was wondering what software you used to optimize performance?

    No, it works well on its own. Less you hit, the better. 3 party registry cleaners and optimizers should be used with caution by people with advance knowledge on the subject. More 3rd party (most, not all) optimizers are causing problems more than fix. Remove unnecessary programs, defrag automatically or auto (so HARD, not so SSD drive), run Disk Clean up, clear Temp folder.

    Avast

    Advanced System Care 6

    CCleaner

    IObit Malware Fighter

    Driver boost

    These I wouldn't use one of them.

    You guys are using any antivirus software or registry/maintenance software to optimize the performance of your PC which has not caused any problems?  Leave the windows firewall "on" your best option for protection?

    Light antivirus is ESET and clean of Windows Defender. Windows Firewall (firewall) is essential (critical) part of any system, computer security, network, so it must be turned on. To do this, * no * slow down your computer or your * network * traffic.

    Being without firewall you leave at the open to pirate computer/malware attacks and risk huge data.

    Antivirus software is also a kind of essential program to protect against known and unknown malware attacks. Windows Defender is integrated in Windows 8/8.1 if you don't like it, you can try ESET NOD32, Norton Antivirus...

    Chrome or Internet Explorer?

    They are both very light when it comes to performance. I personally chose IE 10 (my favorite - in win 7 and 8) and IE11. But that's my opinion. Use what suits you best. IE is very safe and stable in the latest versions of Windows. That is to say, I prefer because it is the 1st part, made from Microsoft and works.

    Make adjustments to settings PC (like the game "never notify" in the settings of the user account, etc.)?

    User account control is also very good part of the guarantee. In fact, it helps the principle of "least privilege" security and helps your programs to run with the least amount of law they can. I recommend that you use the value default level3 or the more level '4 always notify when. User account control can help you prevent malicious attacks / viruses / threats.

    What are some software 'must have' that you found useful?

    In my opinion, there is no such thing as software should be - everyone installs and uses what they need. Statistics show that most people (98% or more) use Microsoft Office. Many have some archivers zip/rar as 7-zip, video software like VideoLAN, etc... It depends on what you need. Antivirus software...

    Visit www.microsoft.com/protect for more information on keeping computer secure and shaped

    If it please let me know if I can help you further and do not hesitate to ask for assistance if you have problems.

    Please, click on the star of white LAURELS (left). This way you'll testify for advice or help you have received.  If your problem has been resolved - click on the appropriate button and accept the solution. ***

  • How do I optimize the performance of windows 7 with freeware tool or tool?

    How do I optimize the performance of windows 7 with freeware tool or tool?

    Hello

    As Frederik advised, saving No. tune-up, not so-called Optimizer program, no registry cleaners should be used.

    See if this helps you improve performance.

    Search for malicious software with the FREE version of this program.

    This is the right link to download included.

    And does not accept the option "Pay for the version" trial installation

    Download, install, update and scan your system with the free version of Malwarebytes AntiMalware:

    http://www.Malwarebytes.org/products/malwarebytes_free

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    You can clean your hard drive using these two methods.

    "Delete files using Disk Cleanup"

    http://Windows.Microsoft.com/en-us/Windows/delete-files-using-disk-cleanup#delete-files-using-disk-cleanup=Windows-7

    Using the free CCleaner program:

    http://www.Piriform.com/CCleaner

    In NO case use the registry cleaning Option in CCleaner

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    And it is not recommended to use a register or a program of cleaning/TuneUP/utilities they can do more harm to your any good operating system that they claim to be able to do.

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    Make sure you have the latest updated drivers:

    Access the site on your computer or equipment manufacturing > Driver and Software Support Section > search your computer or hardware model number > then your operating system > locate the correct drivers > download and install.

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    What are the other steps, which does not include some of the above:

    "Optimize Windows for better performance.

    http://Windows.Microsoft.com/en-us/Windows/optimize-Windows-better-performance#optimize-Windows-better-performance=Windows-7

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    It would be a good idea also run the System File Checker tool to check that everything is correct in the system files.

    "How to use the System File Checker tool to fix the files on system missing or corrupted on Windows Vista or Windows 7"

    http://support.Microsoft.com/kb/929833

    Use the (SFC.exe) System File Checker tool to determine which file is causing the problem and then replace the file. To do this, follow these steps:

    1. Open an elevated command prompt. To do this, click Start, click principally made programs, Accessories, right-click guest, and then click run as administrator. If you are prompted for an administrator password or a confirmation, type the password, or click allow.
    2. Type the following command and press ENTER:
      sfc/scannow

      The sfc/scannow command analyzes all protected system files and replaces incorrect versions with appropriate Microsoft versions.

    See you soon.

  • Improving the performance of OLAP in Oracle Database 11

    Hi all

    First of all sorry for a very generic question, lately I been faced with some problems of performance during the generation cubes

    for example we had a problem of low SGA_memory, now we have referred questions to Doc-ID 1464064.1

    to cut short-we have a list of things to look for in advance for OLAP can improve performance?

    similar to the one mentioned in a blog post (improving the performance of OLAP in Oracle Database 10 g Release 1) which is for 10 g

    we ORDM DW, which has the dimension of TIME based with about 10 k records sometimes, that it takes about 20 minutes to build recently its not not building at all throwing error mentioned Doc-ID 1464064.1 I have a wip SR to even SR 3-9620792761

    Similarly, we produced Sun with approximately 9million records sometimes he finished in 4 hours sometimes it ends quite

    I have twice fallen & recreated workspace that helps a little but does not appear inconsistent.

    Pointers would be really useful

    Thank you

    Prateek

    You can update following anonymous pl/sql block and change in your

    specific information for the name of the cube and measure names. You

    can add more steps as you like following the same convention of xml.

    DECLARE

    CLOB xmlCLOB;

    tmp varchar2 (4000);

    BEGIN

    DBMS_LOB.CREATETEMPORARY (xmlCLOB, true);

    DBMS_LOB. Open (xmlCLOB, DBMS_LOB. LOB_READWRITE);

    tmp: ='

    ';

    DBMS_LOB. WriteAppend (xmlCLOB, length (tmp), tmp);

    dbms_cube.import_xml (xmlClob);

    DBMS_LOB. Close (xmlClob);

    END;

  • How to optimize the performance of this code?

    I have two clips on a flash project. One of them is fixed and the other can be moved with the arrow keys of the keyboard. The two clips have irregular shapes, so HitTestObject and HitTestPoint does not work very well. I have a function that detects the collision of two clips using bitmap. I wanted to update the position of the Movie clip mobile so I put the function of collision detection under the ENTER_FRAME event listener code. It works fine, but when I add many fixed film clips (about 10 clips fixed in an image), the game (.swf file) becomes slower and slows down the performance of the PC. I thought that my collision detection function has a negative effect on the performance of the PC, so I used the class on this page: https://forums.adobe.com/thread/873737
    but the same thing happens.

    You told me how to do to speed up execution of my codes?

    Here's the part of my code:

    stage.addEventListener (Event.ENTER_FRAME, myOnEnterFrame);

    function myOnEnterFrame(event:Event):void

    {

    If (doThisFn) / / doThisFn is a variable to allow or prevent the kind of mobile film clip moved with arrow keys

    {

    If (left & &! right) {}

    Player.x = speed;

    Player.rotation = player.rotation - speed;

    }

    If (right & &! left) {}

    Player.x += speed;

    Player.rotation = player.rotation + speed;

    }

    If (up & &! down) {}

    Player.y = speed;

    }

    If (down & &! up) {}

    Player.y += speed;

    }

    The clips of film sets are wall1, wall2, wall3, wall4,... and so on
    the following code checks to see how many walls exist on each image and pushes them in table wallA

    for (var i: int = 0; i < 1000; i ++) / / you can put up to 1000 object of wall in the table wallA

    {

    If (this ['wall' + i]) / / if the wall object exists, push it into the table wallA

    {

    wallA.push (this, ['wall' + i]);

    }

    }

    for (i = 0; i < wallA.length; i ++)

    {

    If ( h.hitF (player, wallA [i]) | gameOverTest) / / this code checks whether or not the player (the mobile clip) hit the walls

    {

    trace ("second try");

    gameOver.visible = true;

    doThisFn = false;

    }

    }

    I think the following codes are easy to turn and run. I think that the performance problem is due to previous codes.


    If (player.hitTestObject (door))

    {

    Win.Visible = true;

    doThisFn = false;

    }

    If (key) / / if there is a key on chassis

    {

    If (player.hitTestObject (key))

    {

    Key.Visible = false;

    switch (currentFrame)

    {

    case 4:

    wallA [0] .visible = false;

    .x wallA [0] = 50000;

    break;

    case 5:

    wall14. Play();

    wall8.x = 430;

    break;

    }

    }

    }

    }

    }

    It's a simple question that doesn't usually have a simple answer.

    Here is an excerpt of a book (Flash game development: in a Social, Mobile and 3D world) I wrote.

    Optimization techniques

    Unfortunately, I don't know any way completely satisfactory to organize this information. In what follows, I discuss memory management first with sub-themes listed in alphabetical order. Then I discuss the management of CPU/GPU with subheadings listed in alphabetical order.

    This may sound logical, but at least, there are two problems with this organization.

    1. I don't think it's the most useful way to organize this information.

    2. memory management affects the CPU/GPU use, so that everything in the section of memory management can also be listed in the section CPU/GPU.

    In any case, I'll also list information in two other ways, from the easiest to the most difficult to implement and more for much less.

    Two of these later inscriptions are subjective and dependent on experience developer and capabilities, as well as environmental test and the test situation. I very much doubt there would be a consensus on the order of these lists.  However, I think that they are still valid.

    Easier to the more difficult to implement

    1. do not use the filters.

    2. always use the reverse for loops and avoid loops and avoid while loops.

    3. explicitly stop timers for their loan for gc (garbage collection).

    4. use the weak event listeners and remove headphones.

    5. strictly type variable when possible.

    6. explicitly disable interactivity mouse when interactivity smile not necessary.

    7. replace dispatchEvents with callback functions whenever possible.

    8 it would be gc stop sounds for the sounds and SoundChannels.

    9. use the DisplayObject most basic need.

    10. always use cacheAsBitmap and cacheAsBitmapMatrix with air applications (i.e., mobile).

    11. reuse of objects when possible.

    12 Event.ENTER_FRAME loops: use different listeners and different listener functions applied to DisplayObjects as little as possible.

    13. the pool instead of creating objects and gc objects ' ing.

    14. use partial blitting.

    15. use step blitting.

    16 use Stage3D

    Biggest advantage less

    1. Use the blitting Stadium (if there is enough memory system).
    2. Use Stage3D.
    3. Use partial blitting.
    4. Use cacheAsBitmap and cacheAsBitmapMatrix with mobile devices.
    5. Disable explicitly interactivity mouse when interactivity smile not necessary.
    6. Do not use filters.
    7. Use the most basic necessary DisplayObject.
    8. Reuse objects whenever possible.
    9. Event.ENTER_FRAME loops: use different listeners and different listener functions applied to DisplayObjects as little as possible.
    10. Use reverse for loops and avoid the do loops and while loops.
    11. The pool instead of creating objects and gc'ing.
    12. Strictly, type variable when possible.
    13. Use weak event listeners and remove headphones.
    14. Replace dispatchEvents by the callback functions whenever possible.
    15. Explicitly stop timers on loan for the gc.

    16 stop sounds for the sounds and SoundChannels be gc would be.

  • Perform the procedure on oracle apex online

    Hi all


    CREATE OR REPLACE PROCEDURE TEST_PROC
    AS
    V_FNAME EMPLOYEES. FIRST_NAME % TYPE;
    BEGIN
    SELECT FIRST_NAME FROM V_FNAME OF EMPLOYEES
    WHERE NAME = 'JOHN ';
    DBMS_OUT. PUT_LINE (V_FNAME);
    END;
    I did this procedure on the http://apex.oracle.com/ sql worksheet on my account.

    When I gave TEST_PROC RUN; and CALL TEST_PROC; order for providing this procedure I get ORA-00900 following error: invalid SQL statement.

    Please tell how I can perform this procedure.

    Thanks in advance.

    concerning

    Neeraj

    Calls to PL/SQL must be made using anonymous PL/SQL code blocks. For example

    begin
      Test_Proc;
    end;
    

    There is no server EXECUTE command (some customer support this as a sales order, wraps the content to run in an anonymous PL/SQL block and then use it to call the database).

  • Optimization of the rules

    Hello

    I want to know ways to optimize the modules. Can someone list on optimization techniques? Those can really fast substantially determination? Thank you

    .. and if I can close the loop on what this has to do with optimizing the performance.  This is my opinion.

    I think that when Jasmine says that the rule is a rule of 'BAD', (be careful not to speak too loudly for him) she means not only from a point of view maintenance rule.

    First, the engine optimizes the path until the OPA don't just use every bit of data 'seeds' and create a static rule execution plan.

    Consider that when you give enough forced a SQL statement in the where clause, a query may return several responses and poor performance.  OPA, however, can still make a unique determination given incomplete sets attributes of database (unknowns and might.)  OPA may provide explanations that include what basic attributes must always be provided (OPA has a forward and backward chaining).  In short, the OPA may use only a small set of basic data to determine a result, even if OPA Gets a lot of seed data. In this respect, the internal dev team Oracle OPA provides optimization performance and optimizations to the engine itself to a path of optimal execution.  This way can and will change dynamically.

    Traditionally, tuning execution path is what .net/java developers worry about and most often is the prospect that developers pull then ask questions about optimizing the performance of OPA.  So my reply may seem unsatisfactory to anyone who does not participate in effective policies of the organization.

    As a second review, OPA has strengths in optimization, modeling and optimization of the policy itself, which rarely concern of the developer.  Were necessary intermediate decisions by the company and OPA said these determinations were while they were not (perhaps due to a bad mix of procedural rules / background)?  Can reduce what is necessary for improved or new political determination or remove the dependencies of base?

    So, if politics is already optimized, then OPA will not be be slower than any other method of execution that requires the same information, but probably much, much faster.  So I think that Brad question above...

    A developer usually should not change the policy, but policy changes can have the most impact on performance for the end user and the business.  Jasmine guidelines provide something of a foundation on the writing of strategy using proven methods of political organization / readability.  This provides visibility into changes policies to non-developers. Thus, when you create policy documents, we (or at least I) follow the guidelines, devote an extra effort to exploit the isomorphism of the OPA and make political visible to policy work.

    It's observation, and I speak in generalizations.  (Once the policy is well written, btw, if I have a problem which is not now obvious, so I just call the engine for the intermediate attributes know where my problem lies - that I should have for test cases in Excel and/or SoapUI.)  Be careful, however, as the need for optimization of performance may indicate really need something else entirely...)  If the answer is still not satisfactory, although I hope not, is there a policy statement of example and source documents that can be provided to get advice on the setting?  -I would recommend starting a new thread in the forum for this.

  • Tips on optimizing the performance of table.

    Hello

    I read several article on optimizing the performance for the table. Finally, I settle on a strategy to implement, but I have a few questions.

    Let's say we want to display a wide range of data in a table. The number of lines displayed on the screen is n = 25.

    For each VO displayed in table form: Open model project->->->-> Data Model Instances to View object Data Model Module of Application -> select your view object-> press the modify... button-> Tuning

    • For best performance Oracle ADF Performance Tuning Documentation indicates that in lots of field must be set to n + 3
    • The scope of the queryoptimizer indicator should be the value + 3, so if n = 25, FIRST_ROWS_28 FIRST_ROWS_n
    • By default, access is set to Scrollable, which is OK as long as you aren't iteration in a large data set, but if you are, then you must change the Access Mode to the Range Paging
    • Set the size of the beach to n + 3

    Q1: What is the reasonable maximum for a set size? Client wants to display huge table as 200 lines that is not really usable, but it's what they want. I was wondering if the definition of the size of the beach at 203 is a reasonable value, or if it is too high.

    Q2: I have really not understand the purpose of the indicator of QueryOptimizer even after reading the documentation. Is it okay to put it at FIRST_ROWS_203 if your batch size is 203?

    Thank you

    JDev 11.1.2.4

    What version of jdev we are talking about?

    Is the table in paging mode (+ 11.1.1.7)?

    Q1 Yes), the tip is still standing, then set-203. The reason is that the table will display 200 lines that you need to load them in any case. In this case, it is best to load them into a round trip. a smaller rangesize then the number of visible rows in the table means more then 1 trip on the server and the db.

    Q2) the query optimizer indicator is just passed to the db which then decides to use it or not. The indicator shows the db to deliver the first n lines of results as soon as possible. If you have large result sets the db can provide the result set when it comes always collection more data FRO the game results in the background. This will display the fastest page to the user.

    Timo

  • How to understand the implementation of the plan in oracle I mean if I see two implementation plans for a single sql_id plans 2 How to determine the best execution plan? Links and answers are much appreciated. Thank you

    How to understand the implementation of the plan in oracle I mean if I see two implementation plans for a single sql_id plans 2 How to determine the best execution plan? Links and answers are much appreciated. Thank you

    How to understand the implementation of the plan in oracle I mean if I see two implementation plans for a single sql_id plans 2 How to determine the best execution plan? Links and answers are much appreciated. Thank you

    After two execution plans that have the same sql_id, so we can see what you're talking about.

    See "Oracle Explain Explain Plan optimizer" by Maria Colgan of the Oracle optimizer group

    http://www.Oracle.com/technetwork/database/bi-Datawarehousing/TWP-explain-the-explain-plan-052011-393674.PDF

    Examine the various aspects of a selectivity to parallel execution plan

    performance and understand what information you should be brilliant

    the plan can be overwhelming even for the most experienced DBA. This document

    offers a detailed explanation on each of the aspects of the execution plan and a

    Overview of what caused the CBO to make the decision, he did.

  • How to improve the performance of queries

    Hello everyone, this is the first time that I am responsible for investigating the performance of the queries.

    I have no permission to market the autotrace, so I just used the Plan to explain on the table on the development site.

    Here can someone tell me if there are obvious problems with the query below?

    This query is the basis for a single report. The amount of data on the Production site is about 25 times amount of data on the development site.

    User says that they must wait about 10 minutes for the report to load.

    Thank you very much in advance.

    Databases:

    Oracle 11 GR 1 matter (CARS)

    Application running the report is Apex Oracle version 4.0.2

    explain plan for

    Select vw. NPP, vw. PROFILE_NAME, vw. ADDRESS, vw. COMPETENCE, vw. ASSIGNED_CPO_ID,

    VW. STATUS_NAME, vw. DOMICILE_ID, vw. DOMICILE_NAME, vw. OVERPAYMENT_GROUP_ID, vw. CPO_NAME, vw. OCCURRENCES, Act. STATUS_CHANGE_DATE,

    (select name from opay_status where id = ACTION_ID) action_name,.

    ACTIONED_DATE, "CLOSED_BY,.

    (select name from OPAY_PAYMENT_SOURCE_TYPES where id = PAY_TYPE_ID) Payment_Source,

    VW. REVIEW_DATE

    ftrx.opay_overpayments_summary_vw vw, OPAY_OVERPAYMENT_ACTIONS Act

    where vw. OVERPAYMENT_GROUP_ID = Act.ID (+) and upper (Volkswagen. <>STATUS_NAME) "TRANSFORMED."

    and OPAY_PROCESSED_OVERPAYMENT (vw. OVERPAYMENT_GROUP_ID) = 'N'

    Union of all the

    Select RPC. NPP, CPP. PROFILE_NAME, CPP. ADDRESS, RPC. COMPETENCE, CPP. ASSIGNED_CPO_ID,

    CPP. STATUS_NAME, CPP. DOMICILE_ID, CPP. DOMICILE_NAME, CPP. OVERPAYMENT_GROUP_ID, CPP. ASSIGNED_CPO_NAME CPO_NAME, cpp.cycle_count OCCURRENCES, CPP. STATUS_CHANGE_DATE,

    CPP.action_name,

    CPP. ACTIONED_DATE, (select name of CPO where id = CPO_ID) CLOSED_BY,.

    CPP. Payment_Source,

    CPP. STATUS_CHANGE_DATE DUMMY_DATE

    the CPP OPAY_CPO_PROFILE_PROCESSED;

    /

    Select * from table (dbms_xplan.display);

    Hash value of plan: 3275359346

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

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

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

    |   0 | SELECT STATEMENT |                              |   260K |    65 M |       | 44949 (4) | 00:09:00 |

    |   1.  UNION-ALL |                              |       |       |       |            |          |

    |   2.   TABLE ACCESS BY INDEX ROWID | OPAY_STATUS |     1.    16.       |     1 (0) | 00:00:01 |

    |*  3 |    INDEX UNIQUE SCAN | OPAY_PK_STATUS |     1.       |       |     0 (0) | 00:00:01 |

    |   4.   TABLE ACCESS BY INDEX ROWID | OPAY_PAYMENT_SOURCE_TYPES |     1.    12.       |     1 (0) | 00:00:01 |

    |*  5 |    INDEX UNIQUE SCAN | OPAY_PK_SOURCE_TYPES |     1.       |       |     0 (0) | 00:00:01 |

    |*  6 |   EXTERNAL RIGHT HASH JOIN |                              |   197K |    86.       | 43459 (1) | 00:08:42 |

    |   7.    TABLE ACCESS FULL | OPAY_OVERPAYMENT_ACTIONS |  1224 | 29376 |       |   209 (0) | 00:00:03 |

    |   8.    VIEW                                | OPAY_OVERPAYMENTS_SUMMARY_VW |   197K |    51 M |       | 43249 (1) | 00:08:39 |

    |   9.     UNION-ALL |                              |       |       |       |            |          |

    | * 10 |      HASH JOIN |                              |     2.   570 |       | 17032 (1) | 00:03:25 |

    | * 11 |       VIEW                             |                              |     2.   560.       |  7456 (1) | 00:01:30 |

    |  12.        KIND OF WINDOW.                              |     2.   278.       |  7456 (1) | 00:01:30 |

    |  13.         NESTED EXTERNAL LOOPS |                              |     2.   278.       |  7455 (1) | 00:01:30 |

    |  14.          NESTED LOOPS |                              |     2.   242.       |  7453 (1) | 00:01:30 |

    | * 15 |           OUTER HASH JOIN |                              |     2.   214.       |  7451 (1) | 00:01:30 |

    |  16.            NESTED EXTERNAL LOOPS |                              |     2.   194.       |  7448 (1) | 00:01:30 |

    | * 17.             TABLE ACCESS FULL | OPAY_OVERPAYMENTS |     2.   168.       |  7447 (1) | 00:01:30 |

    |  18.             TABLE ACCESS BY INDEX ROWID | OPAY_OVERPAYMENT_ACTIONS |     1.    13.       |     1 (0) | 00:00:01 |

    | * 19.              INDEX UNIQUE SCAN | OPAY_PK_OVERPAY_ACTIONS |     1.       |       |     0 (0) | 00:00:01 |

    |  20.            TABLE ACCESS FULL | STATUS                       |     3.    30.       |     3 (0) | 00:00:01 |

    |  21.           TABLE ACCESS BY INDEX ROWID | HOME |     1.    14.       |     1 (0) | 00:00:01 |

    | * 22.            INDEX UNIQUE SCAN | PK_DOMICILE |     1.       |       |     0 (0) | 00:00:01 |

    |  23.          TABLE ACCESS BY INDEX ROWID | CPO                          |     1.    18.       |     1 (0) | 00:00:01 |

    | * 24.           INDEX UNIQUE SCAN | PK_CPO                       |     1.       |       |     0 (0) | 00:00:01 |

    |  25.       VIEW                             |                              |   197K |   963K |       |  9574 (1) | 00:01:55 |

    |  26.        HASH GROUP BY.                              |   197K |  7127K |  8544K |  9574 (1) | 00:01:55 |

    | * 27.         EXTERNAL RIGHT HASH JOIN |                              |   197K |  7127K |       |  7664 (1) | 00:01:32 |

    |  28.          TABLE ACCESS FULL | STATUS                       |     3.     9.       |     3 (0) | 00:00:01 |

    | * 29.          EXTERNAL RIGHT HASH JOIN |                              |   197K |  6549K |       |  7660 (1) | 00:01:32 |

    |  30.           TABLE ACCESS FULL | OPAY_OVERPAYMENT_ACTIONS |  1224 | 11016.       |   209 (0) | 00:00:03 |

    | * 31.           HASH JOIN |                              |   197K |  4816K |       |  7449 (1) | 00:01:30 |

    |  32.            INDEX SCAN FULL | PK_DOMICILE |    73.   292.       |     1 (0) | 00:00:01 |

    |  33.            TABLE ACCESS FULL | OPAY_OVERPAYMENTS |   197K |  4045K |       |  7446 (1) | 00:01:30 |

    | * 34 |      HASH JOIN |                              |   197K |    53 M |  3280K | 26217 (1) | 00:05:15 |

    |  35.       VIEW                             |                              |   197K |   963K |       |  9574 (1) | 00:01:55 |

    |  36.        HASH GROUP BY.                              |   197K |  7127K |  8544K |  9574 (1) | 00:01:55 |

    | * 37 |         EXTERNAL RIGHT HASH JOIN |                              |   197K |  7127K |       |  7664 (1) | 00:01:32 |

    |  38.          TABLE ACCESS FULL | STATUS                       |     3.     9.       |     3 (0) | 00:00:01 |

    | * 39 |          EXTERNAL RIGHT HASH JOIN |                              |   197K |  6549K |       |  7660 (1) | 00:01:32 |

    |  40.           TABLE ACCESS FULL | OPAY_OVERPAYMENT_ACTIONS |  1224 | 11016.       |   209 (0) | 00:00:03 |

    | * 41.           HASH JOIN |                              |   197K |  4816K |       |  7449 (1) | 00:01:30 |

    |  42.            INDEX SCAN FULL | PK_DOMICILE |    73.   292.       |     1 (0) | 00:00:01 |

    |  43.            TABLE ACCESS FULL | OPAY_OVERPAYMENTS |   197K |  4045K |       |  7446 (1) | 00:01:30 |

    | * 44 |       VIEW                             |                              |   197K |    52 M |       | 13757 (1) | 00:02:46 |

    |  45.        KIND OF WINDOW.                              |   197K |    26 M |    28 M | 13757 (1) | 00:02:46 |

    | * 46 |         EXTERNAL RIGHT HASH JOIN |                              |   197K |    26 M |       |  7673 (1) | 00:01:33 |

    |  47.          TABLE ACCESS FULL | CPO                          |    91.  1638.       |     4 (0) | 00:00:01 |

    | * 48 |          EXTERNAL RIGHT HASH JOIN |                              |   197K |    22 M |       |  7667 (1) | 00:01:33 |

    |  49.           TABLE ACCESS FULL | STATUS                       |     3.    30.       |     3 (0) | 00:00:01 |

    | * 50 |           EXTERNAL RIGHT HASH JOIN |                              |   197K |    20 M |       |  7663 (1) | 00:01:32 |

    |  51.            TABLE ACCESS FULL | OPAY_OVERPAYMENT_ACTIONS |  1224 | 15912 |       |   209 (0) | 00:00:03 |

    | * 52 |            HASH JOIN |                              |   197K |    18 M |       |  7452 (1) | 00:01:30 |

    |  53.             TABLE ACCESS FULL | HOME |    73.  1022 |       |     3 (0) | 00:00:01 |

    | * 54 |             TABLE ACCESS FULL | OPAY_OVERPAYMENTS |   197K |    15 M |       |  7448 (1) | 00:01:30 |

    |  55.   TABLE ACCESS BY INDEX ROWID | CPO                          |     1.    18.       |     1 (0) | 00:00:01 |

    | * 56 |    INDEX UNIQUE SCAN | PK_CPO                       |     1.       |       |     0 (0) | 00:00:01 |

    |  57.   TABLE ACCESS FULL | OPAY_CPO_PROFILE_PROCESSED | 63108 |  9429K |       |  1490 (1) | 00:00:18 |

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

    Information of predicates (identified by the operation identity card):

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

    3 - access("ID"=:B1)

    5 - access("ID"=:B1)

    6 - access("VW".") OVERPAYMENT_GROUP_ID "=" LAW ". "ID" (+)) "

    10 - access("A".") WITH THE ID '=' B '. (' ' ID ')

    11 filter (SUPERIOR ("a.") "<>STATUS_NAME"), "TRANSFORMED" AND "OPAY_PROCESSED_OVERPAYMENT"("A"."" OVERPAYMENT_GROUP_ID') = 'N')

    15 - access("STS".") ID "(+) = TO_NUMBER ("ACT"". ")" STATUS'))

    17 - filter("OPAY".") (OVERPAYMENT_GROUP_ID"IS NULL)

    19 - access("OPAY".") OVERPAYMENT_GROUP_ID "=" LAW ". "ID" (+)) "

    22 - access("OPAY".") DOMICILE_ID "=" DOM ". (' ' ID ')

    24 - access("ACT".") ASSIGNED_CPO_ID "=" DPC ". "ID" (+)) "

    27 - access("STS".") ID "(+) = TO_NUMBER ("ACT"". ")" STATUS'))

    29 - access("OPAY".") OVERPAYMENT_GROUP_ID "=" LAW ". "ID" (+)) "

    31 - access("OPAY".") DOMICILE_ID "=" DOM ". (' ' ID ')

    34 - access("A".") WITH THE ID '=' B '. (' ' ID ')

    37 - access("STS".") ID "(+) = TO_NUMBER ("ACT"". ")" STATUS'))

    39 - access("OPAY".") OVERPAYMENT_GROUP_ID "=" LAW ". "ID" (+)) "

    41 - access("OPAY".") DOMICILE_ID "=" DOM ". (' ' ID ')

    44 filter (SUPERIOR ("a.") "<>STATUS_NAME"), "TRANSFORMED" AND "OPAY_PROCESSED_OVERPAYMENT"("A"."" OVERPAYMENT_GROUP_ID') = 'N')

    46 - access("ACT".") ASSIGNED_CPO_ID "=" DPC ". "ID" (+)) "

    48 - access("STS".") ID "(+) = TO_NUMBER ("ACT"". ")" STATUS'))

    50 - access("OPAY".") OVERPAYMENT_GROUP_ID "=" LAW ". "ID" (+)) "

    52 - access("OPAY".") DOMICILE_ID "=" DOM ". (' ' ID ')

    54 - filter("OPAY".") OVERPAYMENT_GROUP_ID' IS NOT NULL)

    56 - access("ID"=:B1)

    - And this is the content of the function used in the query

    create or replace

    FUNCTION "opay_PROCESSED_OVERPAYMENT" (NUMBER p_opay_group_id) RETURN varchar AS

    fake number;

    result varchar (1);

    BEGIN

    If p_opay_group_id is null returns 'n';

    on the other

    SELECT count (distinct is_processed_yn) in a model of opay_overpayments where overpayment_group_id = p_opay_group_id;

    If dummy <>1 then back 'n';

    On the other

    Select distinct is_processed_yn as a result of opay_overpayments where overpayment_group_id = p_opay_group_id;

    return the result;

    end if;

    end if;

    END;

    - And here are the details of the view.

    CREATE OR REPLACE VIEW 'OPAY_OVERPAYMENTS_SUMMARY_VW '.

    As

    Select one. «' REVIEW_DATE ', a. "ID", a. "NPP", a. "PROFILE_NAME «, a» ADDRESS", a. "COMPETENCE", a"ASSIGNED_CPO_ID", a. "STATUS_NAME", a. "DOMICILE_ID", a. "DOMICILE_NAME", a. "OVERPAYMENT_GROUP_ID", a. "CPO_NAME", a. "OCCURRENCES»

    (select review_date, id, NPP, profile_name, address

    domicile_name, status_name, assigned_cpo_id, competence

    overpayment_group_id, cpo_name

    , count (NPP) over (PARTITION BY ppn) AS OCCURRENCES

    (SELECT review_date, id, NPP, profile_name, address, assigned_cpo_id

    status_name, domicile_id, domicile_name

    overpayment_group_id, cpo_name

    OF ftrx.opay_overpayments_vw

    where overpayment_group_id is null)) a

    Join (select max (id) id, overpayment_group_id, NPP group opay_overpayments_vw by overpayment_group_id, ppn) b

    on all the a.id = b.id union

    Select one. "' REVIEW_DATE ', a." ID ", a." NPP ", a." PROFILE_NAME «, a» ADDRESS ", a." COMPETENCE ", a" ASSIGNED_CPO_ID ", a." STATUS_NAME ", a." DOMICILE_ID ", a." DOMICILE_NAME ", a." OVERPAYMENT_GROUP_ID ", a." CPO_NAME ", a." OCCURRENCES "(select review_date, id, NPP

    profile_name

    address

    skill

    assigned_cpo_id

    status_name

    domicile_id

    domicile_name

    overpayment_group_id

    cpo_name

    , count (overpayment_group_id) over (PARTITION BY overpayment_group_id) AS OCCURRENCES

    (SELECT review_date, id, NPP

    profile_name

    address

    skill

    assigned_cpo_id

    status_name

    domicile_id

    domicile_name

    overpayment_group_id

    cpo_name

    OF ftrx.opay_overpayments_vw

    where overpayment_group_id is not null)) a

    Join (select max (id) id, overpayment_group_id, NPP group opay_overpayments_vw by overpayment_group_id, ppn) b

    on a.id = b.id

    Let me know if my explanation is not clear enough.

    Thanks for reading.

    I thought that the function can be part of the problem. He called lots and made several requests by rank. Calls to PL/SQL in SQL a) require a context switch in the execution of the query (from SQL, PL/SQL) and (b) are completely opaque to the optimizer - it can not re - write to be faster than the procedure one call at a time. Instead of trying to re - write that it is faster, try to write it out of the query completely by turning it into a piece of SQL in the container view.

    Assuming that opay_overpayments.is_processed_yn is OPAY_PROCESSED_OVERPAYMENT(vw., changement ou «N», «Y» OVERPAYMENT_GROUP_ID) = 'N'

    in

    AND (vw. OVERPAYMENT_GROUP_ID or vw. OVERPAYMENT_GROUP_ID in

    (select OVERPAYMENT_GROUP_ID in the opay_overpayments where is_processed_yn = ' n and OVERPAYMENT_GROUP_ID is not null)

    )

    Having done this, you can probably also turn the query into an outer join between vw, the OPAY_OVERPAYMENT_ACTIONS Act ftrx.opay_overpayments_summary_vw and (select OVERPAYMENT_GROUP_ID in the opay_overpayments where is_processed_yn = ' only and OVERPAYMENT_GROUP_ID is not null) if the optimizer which has not already done so. That would minimize the amount of querying.

  • How to improve the performance of your computer and free up space.

    Original title: the unwanted temporary files of windows is at the origin of the problems of proformanace

    According to a check of problem: the unwanted files temporary windows could take to improve the performance of your computer and free up space.

    Can anyone help with this simple problem.

    Angelo

    Hi Angelo,.

    1. which edition of Windows are you running?
    Example: Windows 7 Professional 32 bit.
    Please follow the below link to clean unwanted temporary files.
    Delete files using disk cleanup
     
    Microsoft at home.
    Slow PC? Optimize your computer for peak performance
    Make slate: how to remove the unwanted files and programs
     
    I hope this helps.

Maybe you are looking for

  • Can I speed up wireless on my Portege S100?

    I have a Portege S100 with an Intel PRO/Wireless 2915ABG card and another laptop with a different (Realtek) wireless adapter. Using the same service 8Mbps broadband, the other computer laptop constantly downloads at 6 Mbps, but I can't get 2.3Mbps of

  • T400: Problem and FIX for UK Conexant Audio Driver for Windows Vista and XP (4.92.2.0 2009/04/23)

    Hello I installed the new drivers Conexant for my T400 (the driver is also for R400, R500, T400, T500, W500, W700, W700ds, X 200, X200s, X 200 Tablet, X 301) yesterday. This morning I had to adjust the smart-audio feature works correctly with my helm

  • Programmatically change the Active Configuration results

    I use TestStand 2012 SP1.  I would like to be able to configure the Active Configuration to get results in the process template.  A station in market our sequential model would set sequential reports configuration as the current record while a statio

  • G505s and Virgin Super Hub

    Really pleased with this computer. Recently updated my internet hub to a Virgin Super Hub. I now can't get a wireless connection of wondows 8.0. When I switch to Windows 8.1 I get the message "unidentified network". I can connect via ethernet cable n

  • Company Setup 600 m602n IPX/SPX

    Good day all My organization has recently bought a number of hp laserjet enterprise 600 m602n printers to replace an aging fleet of 4000 series connected to external jetdirect cards printers. Printers being replaced will receive the offers by IPv4 of