Formula to calculate the SGA for 12 c of OLTP database

Dear Experts,

What is the formula to calculate the SGA for an OLTP database application.

This will surely depends on several variables such as

(1) the maximum number of connections application would have

(2) growth of database

  • users connected
  • Server connections
  • total number of connections
  • connection memory
  • OS/application memory

Thanks John.

Is below the formula makes no sense?

Why thank me when you don't know what I said:

You will not find a formula.

You formula has nothing to do with the numbers suggested for EBS, which could (only "might") be a reasonable starting point. You have not given any indication of how you arrive at these figures. You just apply that 80% of the RAM formula suggested by Mr. Faruq? If so, you might want to ask him how he justifies the algorithm.

One point, that you should study management PGA. Your formula assumes that all connected sessions required 30 MB of RAM, all the time. How can you come to this conclusion? On your development system, you can observe how PGA is necessary for the optimal performance of your queries. Then you can ask "how many sessions is actually running a query at the same time?", adds on the non-negotiable PGA by session and calculate the requirement on the PGA TOUR as a result. You should also think about what you call ""memory connection ' and what you call 'PGA Pool'. " These aren't words that I know.

Tags: Database

Similar Questions

  • Filtering and calculate the averages for subsets of a table

    I have a 2D picture that comes out of a loop, and I need to calculate the average of the subsets corresponding to iterations 0-9, 10-19, etc...  In addition, I need to filter the values above and below acceptable limits before calculating the average.  Any suggestions for how to address the issue?

    Here are examples of code does exactly that. This post, looks like you need an upper limit as well. I'll leave that as an exercise for you.

  • IF database-> RAC database: estimate of the size of the SGA for each instance

    Hello!

    Let's say that there is a single instance with SGA 100 G size DB (assume this size is optimal for this database).

    If this database is intended to be converted to a RAC database with 2 instances (suppose DB workload will be spread over multiple instances).

    How to estimate the needs of SGA size for each instance in the RAC database?

    It takes 50G + General cool CARS (say 15%) for each instance?

    (Do not consider situation when one of the instances has failed, and all the charge redirects to an instance having survived)

    I'd be grateful if someone has offered or provided useful references.

    ---

    Kind regards

    Kyrylo

    As a general rule, I would size the SGA on new nodes to 120% of the SGA to single instance. Yes, this means that you will more than double the size of the SGA. You will need additional space to hold the load memory Cache Fusion. And the buffer Cache are possibly a little more space to store additional versions of blocks that seem to accompany the many implementations of CARS. Now, it's just a rule of thumb, so it has a high degree to be very wrong.

    You'll want to consider two big things... (1) the service being used. Will you take advantage of the services to perform the partitioning application? If so, instances can see various workloads that can lead to requests for different resources. (2) you will support a kind of failover (TAF or manual failover) applications? If so, then the LMS must be sufficiently sized to support the additional workload.

    See you soon,.
    Brian

  • How to calculate the deduction for Initial depreciation for assets?

    Hello

    I am trying to set up books FA tax to calculate the initial allowance (depreciation) active @ 10% regardless of the date of commissioning.

    For example. Year Jan - Dec. -rated Convention's same month. If an asset is added in Dec-2010, it should still depreciate 10% instead of 0.8333333333333333

    Pointers would be appreciated.

    Thank you

    Found a way to do it.

  • Is there a way to dynamically calculate the values for the IN operator?

    I want to know if there is a way to dynamically calculate the criteria to include within an IN operator in the WHERE clause. "For example when I try to run the following I get an Oracle error message ' OR!-01722: invalid number." The script below is just an example to help illistrate the problem, I don't want to hardcode the values assigned to the v_test directly within the IN operator because the values of v_test will change from user to user.

    DECLARE

    v_test VARCHAR2 (10): = '1,15,25,55';
    v_tmp VARCHAR2 (50): = NULL;

    BEGIN
    SELECT d.metric_title IN the tbl_health_metric_definition v_tmp d
    WHERE d.metric_status = 'Active' AND d.metric_id IN (v_test);
    END;

    You can convert the string "1,15,25,55" online like this

    SQL> select regexp_substr('1,15,25,55' ,'[^,]+', 1, level) list
      2    from dual
      3  connect by level <= NVL( LENGTH( REGEXP_REPLACE( '1,15,25,55' , '[^,]+', NULL ) ), 0 ) + 1
      4  /
    
    LIST
    ----------
    1
    15
    25
    55
    

    and use this selection in your IN clause.

  • How to calculate the width for assets

    Hello

    I want to have a large image that covers the entire width of a device.

    How can I calculate which corresponds to the width I want?

    I'll probably have 3 versions, each for one of the 3 DPI settings.

    Thank you.

    A desktop application is very different from a mobile application.  On the desktop, you usually have a threshold of width/height that you know that each monitor will be at least in bulk, for example 800 x 600.  Some people design applications for just this minimum resolution and some people create applications that can grow bigger than, but in the end you basically the exact same application on each monitor.

    The story is very different on mobile devices.  The range of screen size and screen DPIS is much more important and should be taken into account.  You have cell phones that are often something like 480 x 800 in portrait orientation, but then also 800 x 480 in landscape orientation.  If you really can't design an app that can be only 480 x 480 because it's just not lots of space and all devices will have a ton of valuable space that is not used.

    Then put in the form of tablets, which usually have a screen size much more important for the provision of application you have a mobile phone often is not make sense on a tablet.  Many applications have a completely different user interface on tablet vs on the phone.

    So in the mobile applications you will want to use relative sizing and positioning as much as possible (width/height=100%, top, left, right, down, VerticalLayout/HorizontalLayout, etc.), you'll want to learn more about the options you have available in the Flex SDK kit to treat the different PPP (dpi scaling and CSS media questions), and you also need to think if your application needs to act even on shelves as on mobile phones or if the interface User should be completely different.

  • How to calculate the percentage for two columns?

    Hello friends

    Use the DECODE or CASE structure

  • Calculate a value for the years annually or monthly or quarterly

    Hi gurus -.

    I have a requirement to divide a given sum monthly/quarterly/annually in recent years, based on the date of departure. So I need the logic of pl/sql to achieve it. Please help me and let me know if the questions.

    Here is my example:

    Let's say amount = 240, date start = January 1, 2013, term = quarterly or annually / monthly, years = 5 years (so now I need to calculate the amount for five years from January 1, 2013 to 31 December 2017 and the output should like below)

    MonthMonthly amountAmount quarterlyAnnually the amount
    January 1, 132060240
    February 1, 1320
    March 1st, 1320
    April 1, 132060
    May 1, 1320
    1 June 1320
    July 1, 132060
    1 Aug 1320
    1-13-seven20
    October 1, 132060
    November 1, 1320
    1st December 1320
    1 January 142060240
    February 1, 1420
    March 1, 1420
    1 April 142060
    May 1, 1420
    June 1, 1420
    July 1, 142060
    August 1, 1420
    1 sep-1420
    1st October 142060
    November 1, 1420
    1 December 1420

    Thank you very much!!!

    Hello

    Maybe something like this:

    WITH bs AS

    (

    SELECT 240 * 5 AS amt

    , TO_DATE (JANUARY 1, 2013"

    "LUN-DD-YYYY".

    ) AS special and differential treatment

    12 * 5 AS total_payments

    9 AS first_group

    12 AS cycle_length

    OF the double

    )

    SELECT TO_CHAR (ADD_MONTHS (special and differential treatment, level - 1)

    "LUN-DD-YYYY".

    ) AS mnth

    CASE

    WHEN MOD (FLOOR - 1, cycle_length) = 0

    THEN the LEAST (first_group

    total_payments + 1 - LEVEL

    ) * amt / total_payments

    WHEN MOD (FLOOR - 1, cycle_length) > = first_group

    CAN amt / total_payments

    Payment END AS

    BS

    CONNECT BY LEVEL<=>

    ;

  • How to calculate the hours between two dates by the numbers

    If I update 09:00 start time 17:00 end time of shift in C3 and B3, how to use a D3 formula to calculate the number of hours between the two?  Then I can just copy down the lines for nth years...

    It is a spreadsheet of the part-time staff payroll.

    I'm sure that a lot of people out there have done that.

    Help, please.

    Thank you.

    Eddie

    What program of worksheet that you are using? Since you have a newer iMac running El Capitan, I can safely assume that you use NOT AppleWorks, which is a Power PC application that can run on any OS newer than the snow leopard, OS X 10.6.8.

    If you use numbers, try to repost your question in numbers for Mac forum. If you use Microsoft Excel, try posting in the Microsoft forums. LibreOffice also has community support.

  • Starting out, I need to calculate 5 points for a Total subtotal and Tax 1,5% = total fields

    I have a form has 5 points, I need calculate the fields for a total with taxes included.

    IV ' e tried to use the formulas which other people requestred and they do not work, what I am doing wrong?

    I have created many forms, but never one that requires calculations of fields. I am lost at this point, PLEASE Help!

    Example:

    Point 1

    Point 2

    Point 3

    Point 4

    Iten 5

    Total part-time

    Tax

    Total

    Thank you

    Coyotefankw

    For RateSubTotal:

    RateRow1 + RateRow2 + RateRow3 + RateRow4 + RateRow5

    For RateTax:

    RateSubTotal * 0.015

    For RateTotal:

    RateSubTotal + RateTax

    A generic form with calculation in 3 different ways.

  • Aggregator customized to calculate the standard deviation

    Hello
    This is probably already available or easy to implement, but I find it difficult to find samples for writing a custom aggregation and ParallelAwareAggregator.

    I'm figuring the difference type of a variable in my item being cached in a real-time system. I want to aggregate the result sum [(X-X') ^ 2] where I spend X' (average) of the client. Can someone help me with an example?

    Thank you
    Sairam

    Hi Sairam,

    in fact, you probably have better use the single-pass approach to calculate the standard deviation, as the average of the values may change before you calculate the number of entries and the average gap.

    You can use the following formula to calculate the standard deviation in one pass: sqrt (N * sum (sqr (Xi)) - sqr (sum (Xi))) / N, where the sqr function is the square of a value, the square root function is the square root of the value, N is the number of entries and Xi is the value to calculate the gap type from the entry of the i - th.

    You can do something like this:

    public static class StdDeviation implements ParallelAwareAggregator {
    
      public static class PartialResult implements Serializable {
    
          private long numberOfElements;
          private BigDecimal sum;
          private BigDecimal sumSquare;
    
          public PartialResult(long numberOfElements, BigDecimal sum, BigDecimal sumSquare) {
              this.numberOfElements = numberOfElements;
              this.sum = sum;
              this.sumSquare = sumSquare;
          }
      }
    
      public static class ParallelPart extends StdDeviation implements EntryAggregator {
    
         private ParallelPart(ValueExtractor extractor) {
            super(extractor);
         }
      }
    
      private ValueExtractor extractor;
    
      private transient boolean notParallel;
    
      public StdDeviation(ValueExtractor extractor) {
        this.extractor = extractor;
        this.notParallel = true;
      }
    
      public Object aggregate(Set entries) {
         ValueExtractor extractor = this.extractor;
         BigDecimal sum = 0;
         BigDecimal sumSquare = 0;
         long num = 0;
         for (InvocableMap.Entry entry : (Set) partialResults) {
            sum = sum.add(partialResult.sum);
            sumSquare = sumSquare.add(partialResult.sumSquare);
            num += partialResult.numberOfElements;
         }
    
         return calculateStdDeviation(num, sum, sumSquare);
      }
    
      public EntryAggregator getParallelAggregator() {
    
         // you could return this, instead of ParallelPart
         //
         // return this;
    
         return new ParallelPart(extractor);
      }
    
      private static Number calculateStdDeviation(long num, BigDecimal sum, BigDecimal sumSquare) {
         BigDecimal partRes = sumSquare.multiply(new BigDecimal(num)).subtract(sum.multiply(sum));
    
         // you can replace the square rooting of a double value with a proper implementation of square root for BigDecimals,
         // which I omitted for the sake of brevity, and then you can do BigDecimal division (make sure you provide a MathContext)
         return Math.sqrt(partRes.doubleValue())/num;
      }
    
      public static Number execute(NamedCache cache, ValueExtractor extractor) {
         return (Number) cache.aggregateAll(AlwaysFilter.INSTANCE, new StdDeviation(extractor));
      }
    }
    

    There is actually no reason for the class ParallelPart to exist. I put it here to illustrate that there can be a different aggregator instance to the ParallelAware aggregator optimized to run on the side of the storage, but you could just "this" return of the getParallelAggregator() method, it wouldn't make a difference for this implementation of the aggregator.

    You can replace the rooting square a double value with a good implementation of the square root of BigDecimals, which I omitted for brevity, and then you can make division BigDecimal (make sure that you provide a MathContext)

    I also omitted the ExternalizableLite and PortableObject implementations (and necessary parameterless constructors) for brevity of the ParallelPart and PartialResult classes.

    In addition, you may need some mojo if you want to use a PofExtractor instead of a regular Value Extractor to avoid the deserialization of the cached value.

    You can perform the aggregation with the execute method, passing the cache altogether on the Extractor which extracts the value as a BigDecimal value cached.

    Best regards

    Robert

    Published by: robvarga on March 12, 2010 11:36

    Published by: robvarga on March 12, 2010 11:43

  • query to calculate the value and produce new lines

    QUARTER CUSTOMER PRODUCT RETAIL_SALES_AMT WHOLESALE_AMT

    01/01/2006 ABC VACUUM CLEANER 454234,00 65633456.00
    01/04/2006 ABC VACUUM CLEANER 324562,00 45333234.00
    01/07/2006 ABC VACUUM CLEANER 67845423.00 NULL
    01/10/2006 ABC VACUUM CLEANER 67453453.00 NULL
    01/01/2007 ABC VACUUM CLEANER 56754633.00 NULL
    01/04/2007 ABC VACUUM CLEANER 45423434.00 NULL


    Hi guys,.

    It's a situation where I have to produce a few new lines with projections based on Q4 RETAIL_SALES_AMT
    RETAIL_SALES_AMOUNT and fourth ' rs following WHOLESALE_AMT. As you can see from the sample data for a specific customer,
    product I have populated only until 01/04/2006 retail_sales_amt but WHOLE_SALE amt for the same product and customer
    are there up to 01/04/2007.

    I have to produce a PROJECTED RETAIL_SALES_AMT and it must be inserted in a new line with an indicator to identify
    a proposed line. Here, in this case I have to produce a new line of projection from 07/01/2006,10/01/2006 and 01/01/2007
    the RETAIL_SALES_AMT. The method of calculation is provided for in:

    retail_sales_amt scheduled for 07/01/2006=.345+ ((01/07/2006 whole_sales-01/04/2006 whole_sales) / (01/04/2006 whole_sale)))
    * 01/04/2006 RETAIL_SALES_AMT and move forward to subsequent quarters.

    Is it possible that I can use a query to produce these new lines by calculating the RETAIL_SALES_AMT on the fly, or any other
    How to procedure.

    Please help as it seems a little complicated.

    Concerning

    Published by: user626688 on October 27, 2009 11:26

    Published by: user626688 on October 27, 2009 11:26

    Published by: user626688 on October 27, 2009 11:27

    Published by: user626688 on October 27, 2009 11:28

    Published by: user626688 on October 27, 2009 11:31

    Published by: user626688 on October 27, 2009 11:32

    Hello

    As far as I can tell, that's what you asked for:

    WITH     got_prev         AS
    (
         SELECT     table_x.*
         ,     LAG (wholesale_amt) OVER ( PARTITION BY  customer
                                        ,                product
                                ORDER BY      quarter
                               )     AS prev_wholesale_amt
         FROM     table_x
    --     WHERE     ...     -- Any filtering goes here
    )
    ,     tree     AS
    (
         SELECT     got_prev.*
         ,     SYS_CONNECT_BY_PATH ( CASE
                               WHEN  LEVEL = 1
                               THEN  retail_sales_amt
                               ELSE  ( .345
                                              + wholesale_amt
                                              - prev_wholesale_amt
                                  ) / prev_wholesale_amt
                              END
                            , '*'
                            )                    AS path
         FROM     got_prev
         START WITH     retail_sales_amt     IS NOT NULL
         CONNECT BY     retail_sales_amt     IS NULL
              AND     quarter               = ADD_MONTHS (PRIOR quarter, 3)
              AND     customer          = PRIOR customer
              AND     product               = PRIOR product
    )
    SELECT       quarter
    ,       customer
    ,       product
    ,       COALESCE ( retail_sales_amt
                 , eval_number ( LTRIM ( path
                                           , '*'
                               )       )
                 )      AS retail_sales_amt
    ,       wholesale_amt
    ,       NVL2 ( retail_sales_amt
                , 'F'
                , 'T'
                )          AS projected_flag
    FROM       tree
    ORDER BY  customer
    ,            product
    ,       quarter
    ;
    

    I posted earlier the eval_number function.

    In this query, a group of consecutive quarters, where the first group a retail_sales_num and the rest of the members of the group are not, is treated as a hierarchy. The retail_sales_amt of all members (except the first) will be based on the previous, as well as the wholesale_amts past and present.
    Say that a tree is 5 points of time (as in your examples of data). We can calculate the 2nd point in several ways: using analytical functions, for example. But we cannot use the same formula to calculate the 3rd point, because the calculation of section 2 must be completed before we can calculate the 3rd. It goes the same for the 4th and 5th.
    This is CONNECT BY arrives. CONNECT BY is one thing in Oracle SQL that can be recursively; children may find themselves once their parents are found, in the same way we want to calculate the nth retail_sales_amt once the amount of the n-minus-1 has been calculated. To do this, we use SYS_CONNECT_BY_PATH, where the first element in the path is the retail_sales_amt given, and all others are the factor to multiply this number to get the next amount.
    SYS_CONNECT_BY_PATH produces a string like ' * 324562 *. 4965935 *-. 0057739', which should be interpreted as a number. TO_NUMBER won't: TO_NUMBER cannot convert only a single numeric literal. Instead, we have a function defined by the user who put this string dynamically in the SELECT clause of a query, where it is interpreted as a numeric expression.

  • How to find the cumaltive for a distinct element in the same column

    Hello

    I wrote the following code,

    Select msid, nvl(starttime,0) starttime, sessionvolume, sum (sessionvolume) on sum1 (order by starttime LINES UNBOUNDED PRECEDING)
    of aaa_bill;

    I have many MSID and I want to calculate the cumaltive for each of them, but my code calculate the MSID cumaltive regardless, sample output like below

    Sum1 msid Starttime Sessionvolume
    20110809162804-9734-9734 84A8E46E8BD1
    20110809162804 45 9779 84A8E46E8BD1
    84A8E46E8BD1 20110809162804 2813 12592
    84A8E46E8BD1 20110809162804 21111 33703
    20110809162804 13253 46956 84A8E46E8BD1
    20110809162804 5919 52875 84A8E46E8BD1
    5C4CA98EABF3 20110809204555 6149 59024
    20110809204555 6739 65763 5C4CA98EABF3
    5C4CA98EABF3 20110809204555 2001 67764
    5C4CA98EAC00 20110809225314 1080 68844
    5C4CA98EAC00 20110809225314 6188 75032

    any help please,.

    Maybe

    select msid,
           nvl(starttime,0) starttime,
           sessionvolume,
           sum(sessionvolume) over(partition by msid order by starttime) sum1
      from aaa_bill
    

    Concerning

    Etbin

  • Calculate the average of a report by column

    Hello ~
    I have several reports in several areas on a page. I have columns for the time, count, Total and average. I'm trying to understand how to calculate the average for the data that is displayed. For example:

    By time

    Time count Total average
    2 2 4
    5-2-10
    10-3-30

    -----
    17 7 44 6.2857


    What is happening now is that the app is on average each line first and then adding the middle column. Is there anyway to average the totals and not the lines?

    Thank you
    Deanna

    Published by: Dclipse03 on October 7, 2008 10:00
  • How to enable the CACHE for all LOB data

    Hello

    I want to activate the CACHE for all LOB in my database - 10.2.0.4

    Does anyone has generic script to activate the cache for all TRADES

    Thank you

    You should be able to write some dynamic SQL code. This will set each BUSINESS in the current schema CACHE

    DECLARE
      l_sql_stmt VARCHAR2(4000);
    BEGIN
      FOR lobs IN (SELECT * FROM user_lobs)
      LOOP
        l_sql_stmt :=
          'ALTER TABLE ' || lobs.table_name ||
          ' MODIFY LOB( ' || lobs.column_name || ' ) (cache)';
        execute immediate l_sql_stmt;
      END LOOP;
    END;
    

    Justin

Maybe you are looking for