Am I understanding SoftReferences correctly?

I have browsed the forum archives and various articles on SoftReference and garbage collection, but I'm not 100% sure I'm getting it.
I am trying to set up a primitive cache system for holding List<Double> objects that are retrieved from a database. I am planning on storing them in a Map<Integer, SoftReference<List<Double>>>, with the key serving as a permanent ID to lookup the appropriate list.
If my cache gives out a reference to the List<Double>, my understanding is that the List<Double> cannot be collected as long as that reference persists. What I am unsure of is whether the List<Double> could be collected if I only gave out a reference to one of the Double objects in the list. From what I've read, my hunch is that the answer is yes... could someone please tell me if I am correct?
Many thanks!
Edit: strange... the ">" bracket after SoftReference in my message is not visible in the editable text version

If my cache gives out a reference to the
List<Double>, my understanding is that the
List<Double> cannot be collected as long as that
reference persists. You are correct. If the program has a strong reference to the list, then the list won't be eligible for collection.
What I am unsure of is whether
the List<Double> could be collected if I only gave
out a reference to one of the Double objects in the
list. From what I've read, my hunch is that the
answer is yes... Again correct. The soft reference points to the list. If you give out a reference to something in the list, then there's no hard reference to the list, and it's eligible for collection.
Side comment: unless your lists are relatively large (a few thousand items or more), and you have a lot of them, then soft references really won't buy you much. For small objects, I've found that a fixed-size LRU cache was a better solution.

Similar Messages

  • Do i understand this correctly?

    am i understanding this correctly? instead of downloading a movie on my ipad i just select it from itunes on the ipad and it will be streamed to appletv?
    but why is that better than just choosing it off appletv and watching it immediately??
    i will give this endorsement appletv is great and i enjoy using it, but i must be missing something as i see no big deal about streaming movies i rent...ok, if they are my own videos of family etc....please enlighten me

    Theatrically this could work with all h.264 streaming content you might find when browsing the web or even from app players like ABC, Comcast and ATT U-verse.
    It will be interesting to see if this works when guests come over who may have content that differs from my own.

  • So if I understand this correctly...

    ... there is no "great" way to manage the fans and monitor temperature levels for my new (unibody) MacBook Pro when running Windows XP via Boot Camp? I have Boot Camp 2.1, Windows (Media Center) SP2, a MacBook Pro 2.8GHz and a bit of disbelief.
    So far as I understand it, Speedfan is useless because there isn't a configuration file which can acquaint the program with this motherboard/chipset, therefore Input Remapper is the only remaining choice, and fan speeds must be set manually there, instead of in a manner where they would adjust depending on CPU load and temperature.
    Does this all agree with consensus?
    I'm fairly unhappy at the moment. Of course I anticipated making a general switch to OSX when I purchased the MacBook 2 weeks ago, however I still have quite a few Windows apps which I intend to use extensively in the future, games included. The prospect of using this thing without a power cord in XP seems unrealistic, because I can't imagine the power settings are at all finely tuned, instead first impressions leave me thinking things are quite crude in Windows -- far from the easy dual operability that Apple had me believe.
    Any suggestions or responses to my ravings would be appreciated.

    Thanks for the post. The issue I have with smcfancontrol (and I assume others do as well) is a)you have to start in OSX before booting to Windows to set the fan speed, and b) this isn't a very responsive solution, in that the computer isn't choosing the ideal fan speed based on temperatures, rather a program has set a minimum fan speed regardless of what the temps are from one point to another. I believe I have this correct with smcfancontrol, but if I'm mistaken, please, someone, correct me. I remain incredulous, because perhaps the main advantage of owning a laptop -- portability -- is rendered null because I can expect little more than 1 hour of very dry use in XP as a result of what I can only assume to be poor power management and rather clumsy fan/temperature control from the current Boot Camp drivers.
    Message was edited by: MacAdamy
    Message was edited by: MacAdamy

  • Do I understand WDS correctly?

    Hi all..
    Ok, i've been trying to get WDS working with my WLSE.
    I'm not sure if I understand correctly.. our laptop clients currently authenticate via another system but I have a WLSE which I want to use to manage the radio network, signal strength/stats/etc.
    Am I right in thinking that the main WDS AP needs to authenticate with Radius via the WLSE before all the AP's will start sending data to the WDS and then to the WLSE? :((
    I've got my Radius server configured on the WDS access point and the other APs are seeing it, as when I issue the "show wlccp wds ap" command I get the following:
    WIG-ap01#sh wlccp wds ap
    MAC-ADDR IP-ADDR STATE LIFETIME
    0013.6086.2ced 192.168.94.3 AUTH IN PROGRESS -
    0012.80fd.0790 192.168.94.14 AUTH IN PROGRESS -
    0013.6086.2cb2 192.168.94.2 AUTH IN PROGRESS -
    0012.d922.a237 192.168.94.11 AUTH IN PROGRESS -
    I cannot get it any further than "AUTH IN PROGRESS"
    Here is some of the Radius config on the WDS AP
    aaa group server radius iauth01
    server <IP ADD REMOVED> auth-port 1645 acct-port 1646
    aaa group server radius rad_mac
    aaa group server radius rad_admin
    aaa group server tacacs+ tac_admin
    aaa group server radius rad_pmip
    aaa group server radius dummy
    aaa group server radius rad_eap
    aaa group server radius rad_acct
    aaa authentication login eap_methods group rad_eap
    aaa authentication login mac_methods local
    aaa authentication login method_iauth01 group iauth01
    aaa authorization exec default local
    aaa authorization ipmobile default group rad_pmip
    aaa accounting network acct_methods start-stop group rad_acct
    aaa session-id common
    dot11 network-map
    negated
    radius-server host <IP removed> auth-port 1645 acct-port 1646 key xxxx
    radius-server timeout 30
    radius-server attribute 32 include-in-access-req format %h
    radius-server authorization permit missing Service-Type
    radius-server vsa send accounting
    bridge 1 route ip
    wlccp authentication-server infrastructure method_iauth01
    wlccp wds priority 128 interface BVI1
    wlccp wnm ip address <ip removed>
    Please help, I know im a n00b.. but the lack of documentation with this is really screwing me.
    Thanks
    Tim

    Thanks for the replies guys..
    I've managed to get it to send stuff to the radius server which also authenticates with the AD, however the radius server is rejecting me because im using a "unknown authentication type" its windows radius server.
    My friend has double checked my config on my AP's and Radius and WDS is setup fine.. we are wondering if you use a standard radius server? or does it have to be a Cisco ACS or a AP with the local radius server running...
    Many thanks
    Tim

  • I am understanding this correctly?

    Hi All
    I've been unable to confirm this in the color manual:
    When I send from fcp to color, do the clips in the color timeline link to the media files in the capture scratch on my video drive? After I've rendered and sent back to fcp, would the 'colorized' clip in the fcp timeline link to the rendered files in the color render directory i nominated in the set-up room?
    Have I missed something, are there other directories I should be aware of?
    I am trying to get a firmer understanding of how color's media management structure and set-up. If you have any pdf's or other info on this topic please let me know.
    Cheers
    -j-

    You are correct. There are no other directories to be aware of regarding source material and rendered material.

  • Very Swing Newbie, Can somebody tell me if my "understanding" is correct

    Ok I am trying to draw a 2D maze in Swing. My idea was to draw cells, black cells(squares) to mean blocked off, and white cells to mean open. I also wanted the maze to look decent, and have blue lines borders cutting each cell (kind of like borders in an excel chart). I've gotten some tips as to how to do this with a gridLayoutManager, and use labels as the squares, but the labels don't give me that well defined separation between one cell and the other, they just look like one continous block of color. Another thing I was reading about was the EtchedBorder look, and I was wondering if that could be done for labels, so that each label/cell has an etched border, which would give it a more defined separation?
    The other way I was thinking about doing this was to just draw lines, and fill in squares, but not so simple with Swing. Like I said I am just learning, so I am only beginning to understand how Swing works. Please correct me if I am wrong, and that is what I want to know now, if I am wrong. How I understand it is that basically Swing doesn't really have a draw feature, where you get a canvas and then you just start drawing, it is more like assembling things with predefinied components, and building up a UI with these lego pieces basically. And if you wanted to draw you'd have to override the paint() method for the component, and that is the only way to draw something. Is that true? So basically i have two options draw something by overriding the paint component, meaning I'd have to extend a top level container, or try to build my GUI with the components given. Please give me some information, thank you.

    And this is another way.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Maze extends JFrame
         MPanel  pan = new MPanel ();
    public Maze()
         super();
         setBounds(6,6,368,388);     
         addWindowListener(new WindowAdapter()
        {     public void windowClosing(WindowEvent ev)
                   dispose();     
                   System.exit(0);
            getContentPane().add("Center",pan);
           setVisible(true);
    public class MPanel extends JPanel
    public MPanel()
         setBackground(Color.pink);
    public void paintComponent(Graphics g)
         super.paintComponent(g);
         for (int i=0; i < 400; i++)
              g.setColor(Color.blue);
              if (i%20 == 1) g.setColor(Color.white);
               if (i/20 == 8) g.setColor(Color.white);
              int y = i/20;
              int x = i%20;
              g.fillRect(x*18+1,y*18+1,17,17);
    public static void main (String[] args)
         new Maze();  
    Noah

  • Understanding the correct use of FromOrderComponets and ToOrderComponents

    Hi all
    Someone could help me understand the difference, and in what case I must use fromOrderComponets and in what case i must use toOrderComponents.
    In the Decomposition Rules.
    I've done multiple orchestrations to own cartridges, by multiple products, and I've never needed to use the expression toOrderComponents, because we've always used FromOrdercomponents.
    any explanation is helpful,
    Best Regards
    David A Leon H

    Hi Leon,
    In the Design Studio Help, please refer to "Working with Decomposition Rules" inorder to understand Decomposition Rules.
    Property Correlation is used while setting a dependency in the Product Specification. This is where FromOrderComponent & ToOrderComponent both are extensively used. For more information, please refer help section for the following.
    1)About Order Item Dependencies
    2)Orchestration Dependency Editor Order Item Dependencies Tab
    Thanks,
    Naveen Jabade

  • IOS Multitasking -- Do I understand it correctly?

    Due to many problem about battery drain and some request for kill all Apps with 1 button, I would like to share my understanding about the multitasking issue which many people think of it as the cause of problem.
    AFAIK, There is NOT real multitasking in iOS for other Apps except the system apps. And system apps are not take CPU time that much to make the A4 processor to burn CPU that hot and drain battery that quick. The only effect of running (or other word, opening) too many Apps is that it will consume memory to much and it will cause a noticeable lag time when switching between Apps.
    In my case, rebooting the phone, once or twice, with closing all apps before, helps NOTHING.
    So, regarding the issue of battery drain and (little) slow response, please everyone do not blame yourselves for opening so many apps at the same time. It must be the OS itself that have something wrong about managing the process that take too much CPU time. I assume that there must be some system process trying to do something but cannot do it then sleep and wake up in a short interval to try again and again. The process could be about Push Notifications involving the metadata of some apps that inconsistent with the updated OS as they said.
    So I would like to conclude that opening too many app is not the cause of battery drain, and kill-all button help nothing in the case.
    Just want to share.

    AFAIK, There is NOT real multitasking in iOS for other Apps except the system apps.
    Yes there is, but there is no need, reason, or benefit for the overwhelming majority of 3rd party apps to run in the background when leaving the app. The number of 3rd party apps that run in the background are few and far between since there is no benefit or reason for the apps to do so. Music streaming apps run in the background, and a number of GPS navigation apps can run in the background. Most other 3rd party apps will be suspended or quit when leaving the app.

  • Can I manually force ALL photos from my ipad/iphone to the cloud? If I understand it correctly photos don't store in the cloud until 1000 pics have been taken.

    I read that photos are not stored in the cloud until 1000 have been taken on my device's. Is there a way to force all my photo's to the cloud so they are not stored on my device's?

    If you switch on your Photo Stream, then it will store any number of photos up to 1000 photos.  No, you would have to manually delete them from your device if you want to, but the Cloud will only store 1000 as I say.  When you get to picture #1001, then picture #1 will disappear, so I would recommend storing your photos somewhere else, like backing up on your computer of external HDD.

  • Not understanding variables correctly

    Hello All
    I am having trouble with my variables. How do I int or double them with out giving them a value?
    public static int monthPop( int bRate, int dRate, int numberMonths, int bunnyThresh, int bunnyStart, int tables )
    int growRate, counter, result;
    double bunNew, bunOld, popNew,  popOld;
    counter = 1;
    if(tables == 1)
         System.out.println("Month\t\t\tBunnies");
         while(counter <= numberMonths)
              bunOld = bunnyStart / bunnyThresh;
              bunNew = bunOld + growRate * bunOld * ( 1 - bunOld);
              popNew = bunNew * bunnyThresh;
              int outcome = (int)population;
              System.out.println( counter + "\t\t\t" + outcome );
              counter = counter + 1;
    else
         while(counter <= numberMonths)
              bunOld = bunnyStart / bunnyThresh;
              bunNew = bunOld + growRate * bunOld * ( 1 - bunOld);
              popNew = bunNew * bunnyThresh;
              counter = counter + 1;
         int outcome = (int)population;
         System.out.println( "\n\n\n" );
         System.out.println( "So after " + numberMonths + " month(s), the " +
         "     population would be " + outcome + " bunnies." );
    return counter;
    }So this sub program get fed 6 variables and I am trying to run the program and I get errors for popNew variable not being initialized and the build fails. I am not sure what I am doing wrong and would love to get some help if possible. it is much appreciated.
    So I am trying to use a formula
    bunNew = bunOld + growRate * bunOld * ( 1 - bunOld)
    where
    bunNew is relative population ending of the month
    bunOld is relative population beginning of the month
    popNew is the actual number of bunnies at the end of the month
    popOld is the actual number of bunnies at the beginning of the month
    bunnyThresh is the threshold of the bunny ranch.
    growRate is equal to bRate - dRate
    So again I am not sure what is going on based on my code. I think everything looks good, but again I am new and taking java programing class.
    So any and all help is much appreciated.
    thanks
    ed
    Edited by: Uprvrndn on Jan 27, 2008 5:49 AM

    Ok did some revising of the code
    public static int monthPop( int bRate, int dRate, int numberMonths, int bunnyThresh, int bunnyStart, int tables )
              int counter, result;
              double bNew, bOld, pNew,  pOld, growRate;
              pOld = bunnyStart;
              bOld = pOld / bunnyThresh;
              counter = 1;
              growRate = bRate - dRate;
              System.out.println(pOld + "  " + bOld + "  " +
               growRate + "  \n\n\n");
              if(tables == 1)
                   System.out.println("Month\t\t\tBunnies");
                   while(counter <= numberMonths)
                        bNew = bOld + growRate * bOld * ( 1 - bOld);
                        pNew = bNew * bunnyThresh;
                        bOld = pNew;
                        int outcome = (int)pNew;
                        System.out.println( counter + "\t\t\t" + outcome );
                        System.out.println( counter + "\t\t\t" + pNew );
                        counter++;
              else
                   while(counter <= numberMonths)
                        bNew = bOld + growRate * bOld * ( 1 - bOld);
                        pNew = bNew * bunnyThresh;
                        bOld = pNew;
                        counter++;
                   int outcome = (int)pNew;
                   System.out.println( "\n\n\n" );
                   System.out.println( "So after " + numberMonths + " month(s), the " +
                   "     population would be " + outcome + " bunnies." );
              return counter;
         }I get the follow error and I quote:
    edmac:Program2 erose$ javac Program2.java
    Program2.java:180: variable pNew might not have been initialized
                   int outcome = (int)pNew;
    ^
    1 error
    edmac:Program2 erose$
    Also because I am trying to show a table of a month to month I started at 1 instead of 0. So month 1 would be the starting point. Month 0 would be the initial when the farm was first established.

  • Am I understanding this correctly?

    Do you have to have iTunes installed on a PC to get FW or Software updates?
    That is the stupidist thing I have ever seen.
    I've already talked to the packagers and the network security team (As they currently block iTunes) and this is a deal killer............
    Both Goodlink and Blackberry can do updates OTA (Over the Air)
    We are an orginization of 35,000 + end users and they can't install anything on their PC's.
    If iTunes is mandatory then they will never gain acceptance in the Enterprise market as that is unacceptable. Sorry Dr you can't get any patient information because all of the bandwidth is being used by people downloading podcasts.
    And what is the deal with no native encryption on the device????
    I don't even see a reason to test as this would be a HIPPA violation before we even started???????
    Poor planing and horrible implementation.
    If I am incorrect please point me to documentation stating otherwise.
    Thanks

    msg630,
    There is a built-in ability in iTunes to restrict access to the iTunes Store, designed for those most restrictive of managers - Parents. While not intended for the Enterprise per se you can restrict access to the iTunes Store, Podcasts, Internet Radio, and/or shared libraries. You can create a preferences file that could be deployed to the machines. However, you don't need to install iTunes on every PC. (more on that later in this post)
    The program to distribute your own iPhone apps is available to companies with 500 employees or more. I am not sure if it is currently accepting limited applications or any application. This is the program that was in beta with several companies at least since March. There has been two betas ongoing, one for developers and one for Enterprise.
    http://developer.apple.com/iphone/program/details.html
    In addition the iPhone will take the most restrictive of the ActiveSync policies and policies you deploy with the iPhone Configuration Utility.
    The iPhone supports the following policies set by the Exchange admin:
    1. Enforce password on device
    2. Minimum password length
    3. Require both numbers and letters
    4. Inactivity time in minutes (essentially how long until it autolocks)
    In addition it supports Remote Wipe. If the device is still listed to be wiped on the Exchange server it will wipe again if you try to reconfigure for the server.
    With the iPhone Configuration Utility you can deploy profiles via website (such as on an Intranet) or via email. The iPhone Configuration Utility can set:
    1. Require Passcode
    2. Allow simple value (repeating characters, or short)
    3. Require Alphanumeric (while normally on the iPhone a passcode set is only 4 numbers, if your profile or exchanger server required it can be longer and a mix of letters and numbers)
    4. Minimum Passcode Length (yes, it can be more than 4 digits when configured via Exchange Activesync policies or the iPhone Configuration profile)
    5. Minimum number of complex characters (symbols such as $, &, and !)
    6. Maximum number of failed attempts (Default is after 6 it imposes a time delay before trying again, after 11 it has to be connected to the iTunes it syncs with to reset the attempts)
    7. Maximum Passcode Age (how often do they have to change the passcode)
    8. Passcode lock (in minutes)
    If there is both Exchange Activesync and a configuration profile (or multiple profiles) on the device, the most restrictive combination is used.
    Apps up to 10 MB can be installed OTA.
    It is entirely concievable that only 1 copy of iTunes be installed in the IT department for setting up the device, load a profile, and then hand it activated to the employee. If they need an internal App it can be deployed OTA.
    The iPhone can communicate for email, contacts and calendars OTA with an Exchange Server.
    Hope this helps,
    Nathan C.
    Message was edited by: Nathan C

  • Do I understand this correct?

    Hi Im just playing around with code to learn new things. And a question appeared.
    When I do
    List list = new LinkedList(new ArrayList());I tell one of the constructors in LinkedList that I want the list to be an ArrayList?
    And is this the same as
    List list = new LinkedList();
    list = new ArrayList()/ Curios Magnus

    MagnusT76 wrote:
    Hi Im just playing around with code to learn new things. And a question appeared.
    When I do
    List list = new LinkedList(new ArrayList());I tell one of the constructors in LinkedList that I want the list to be an ArrayList?No. A List is either a LinkedList or an ArrayList. It can't be both.
    What you do is create a new ArrayList (which is empty, of course) and pass that to the constructor of the LinkedList. If you look up [that constructors JavaDoc|http://java.sun.com/javase/6/docs/api/java/util/LinkedList.html#LinkedList(java.util.Collection)] you'll see that you only specify the initial content of the LinkedList. Since the content List you specify is empty, the LinkedList will be empty as well. That's exactly the same effect as if you had used the no-arguments constructor.
    And is this the same as
    List list = new LinkedList();
    list = new ArrayList()
    No, this is an entirely different thing.
    First you create a LinkedList and rember a reference to it in the list variable. Then you overwrite the reference with a reference to a newly created ArrayList (thus forgetting the original reference).
    Both pieces of code do unnecessary and useless work. The difference between the two is that with the first you havean empty LinkedList in the end and with the second piece of code you have an empty ArrayList in the end.

  • Understanding Statistics io and Logical reads - is logical reads information correct

    Hi,
    This question arises during a performance test - on SQL Server 2012 with SP2.
    In the following example, table has only column and that is of data type INT.
    When inserted 592 records of data type INT it is doing only 1 logical read but as soon another record is inserted SP is reporting 2 logical reads. Why?
    In the code, i have highlighted difference between 
    statistics io - logical reads and sys.dm_exec_procedure_stats.total_logical_reads
    to understand the difference between these 2 information.
    set nocount on
    GO
    create table dbo.test_storage_and_logical_reads
    employee_number int --primary key
    GO
    go
    CREATE procedure dbo.test_sp_logical_reads
    as
    begin
    select
    employee_number
    from dbo.test_storage_and_logical_reads
    order by employee_number desc
    end
    go
    insert into dbo.test_storage_and_logical_reads
    (employee_number)
    VALUES (1)
    GO 592
    EXEC sp_spaceused 'dbo.test_storage_and_logical_reads'
    --set statistics io on
    --GO
    exec dbo.test_sp_logical_reads
    GO
    ----Table 'test_storage_and_logical_reads'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    ---- But sys.dm_exec_procedure_stats.total_logical_reads is reporting 3 instead.
    truncate table dbo.test_storage_and_logical_reads
    GO
    insert into dbo.test_storage_and_logical_reads
    (employee_number)
    VALUES (1)
    GO 593
    EXEC sp_spaceused 'dbo.test_storage_and_logical_reads'
    exec dbo.test_sp_logical_reads
    GO
    ----Table 'test_storage_and_logical_reads'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
    ---- But sys.dm_exec_procedure_stats.total_logical_reads is reporting 4 instead.
    --drop procedure dbo.test_sp_logical_reads
    --drop table dbo.test_storage_and_logical_reads
    GO
    NB: I do understand the logical and physical reads. Thanks.
    For quick review of new features, try virtual labs: http://msdn.microsoft.com/en-us/aa570323

    Hi.
    I still need to test the scenario but if you read definition of this DMV it says 'Returns aggregate performance statistics for cached stored procedures' so I guess, I am not sure 3 can be due to this aggregated output given by this DMV. Will test it
    on SS 2012 SP2 will get back to you.
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it.
    My TechNet Wiki Articles
    Hi Shanky / Sean Gallardy
    i think Sean Gallardy created the "test_sp_logical_reads" table in master DB, i have that same issue when i accidentiatly created the table "test_sp_logical_reads" in master, but when i create the same table in USER DB like "sample1"
    it only allocate 1 page for 592,
    hi Asam,
    Let me narrow down the your question, if my understanding is correct ...
    <<When you have the free space in a page of a Heap, why SQL Server is assigning New page for a New Record>>
    Answer is in PFS bytes
    The answer is that PFS bytes are not fully reset until the page is reallocated. On deallocation, the only bit in the PFS byte that's changed is the allocation status bit - this makes it very easy to rollback a deallocation
    --Before inserting the 593 record plese execute the below query
    --Note Replace "database1" with your DBName
    DBCC TRACEON (3604);
    DBCC IND ('database1', 'test_storage_and_logical_reads', 1);
    --Result
    PageFID PagePID IAMFID IAMPID ObjectID IndexID PartitionNumber PartitionID iam_chain_type PageType IndexLevel NextPageFID NextPagePID PrevPageFID PrevPagePID
    1 2770 NULL NULL 517576882 0 1 72057594039828480 In-row data 10 NULL 0 0 0 0
    1 2769 1 2770 517576882 0 1 72057594039828480 In-row data 1 0 0 0 0 0
    --your intrested in the second record(page)
    DBCC PAGE ('database1', 1, 2769,3) WITH TABLERESULTS;
    --you can find 38th row as
    --PFS (1:1) = 0x64 MIXED_EXT ALLOCATED 100_PCT_FULL
    --which means your page is full
    --you can try inserting 300 rows it will show you PFS (1:1) = 0x61 MIXED_EXT ALLOCATED 50_PCT_FULL
    please refer in the below link
    http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/07/08/under-the-covers-gam-sgam-and-pfs-pages.aspx
    http://aboutsqlserver.com/2013/12/17/sql-server-storage-engine-heap-tables/
    "This page has a PFS byte value of 0x04 - how can it be full when its not allocated?"
    The answer is that PFS bytes are not fully reset until the page is reallocated. On deallocation, the only bit in the PFS byte that's changed is the allocation status bit - this makes it very easy to rollback a deallocation.
    Here's an example. Using a database with a simple table with one row.
    A DBCC PAGE of the IAM page includes:
    PFS (1:1) = 0x70 IAM_PG MIXED_EXT ALLOCATED 0_PCT_FULL
    If I run the following:
    BEGIN
    TRANSACTION
    DROP
    TABLE T1
    GO
    And then do the DBCC PAGE again, the output now includes:
    PFS (1:1) = 0x30 IAM_PG MIXED_EXT 0_PCT_FULL
    And if I rollback then transaction, the DBCC PAGE output reverts to:
    PFS (1:1) = 0x70 IAM_PG MIXED_EXT ALLOCATED 0_PCT_FULL
    Thanks
    Saravana Kumar C

  • New to Network - Is this topology and understanding correct ? (please help)

    Hi all,
    I am new to network and is currently taking my ICDN1 course, but have no actual hands-on experience beside the short labs lesson in class..
    Hence, I will like to take this opportunity to check with gurus here for their advices and to see if my understanding is correct or wrong.
    Please pardon me if I ask/make any silly questions or wrong theories.
    =========================================================
    Refer to below diagram (which I drawn)
    Assumptions
    Node 1 and Node 2 need to have public IPs assigned by ISP.
    Internal and mangement network not reflected Security not a concern, NAT/DMZ not required
    Firewall and Router are 2 separate physical device
    Questions
    Q1) is my toplogy and IPs assignment correct base on the assumption above ?
    Q2) do we need to assign IPs to Fe0/0 for both firewall and MyRouter ? Must it be using the ISP issued IPs or can it be internal IPs ?
    Q3) Can we consider MyRouter Fe0/0 and below = 1 broadcast domain/network segment or
    MyRouter Fe0/0 to Fe0/0 firewall = 1 network segment and Firewall Fe0/1 and below = another network segment ? and why ?
    I am thinking of how does a IP packet transfer from node1 to the internet. Let's say node1 send a packet to 8.8.8.8
    [src ip=202.156.1.4][dst ip=8.8.8.8][src mac=a.b.c.d][dst mac=a.b.c.f] (packet going from Node1 to the gateway/firewall)
    [src ip=202.156.1.4][dst ip=8.8.8.8][src mac=a.b.c.g][dst mac=a.b.c.h] (packet going from the Firewall to the MyRouter)
    Q4) How does firewall know which interface it must exit on the next hop ?
    Is there a routing table in Firewall ? Does the Firewall has a default gateway , or it has a default route ?
    Q5) Since the firewall is connected to MyRouter directly, how does it know the MAC address of MyRouter and vice versa ? Can we do ARP request without going through switch ? Is the MyRouter physically connected to the switch or to the Firewall ?
    Hope some kind gurus here can enlightened me.
    Thanks

    Hi Jon,
    Thanks for shedding some light on my questions
    In terms of IP addressing it depends on what the ISP has given you. Often you get two blocks, one for the link between the outside of your router and the ISP router and one for use for the connection between the outside interface of your firewall and the inside interface of your firewall.
    The ISP router would then have a route for the block in use between your firewall and router pointing to the outside interface of your router.
    Q1) Let's say the 1st block will be 202.123.123.1 and 202.123.123.2 that will be the IP between my external interface of MyRouter and the ISP router -> am I right ?
    Q2) For the 2nd block based on my example, it will be 202.156.1.0/24, am i right ?
    Q3) Can i further subnet this block (202.156.1.0/24) so that I can have a different subnet between MyRouter internal interface fe0/0 <-> MyFirewall external interface fe0/0 and another subnet for MyFirewall internal interface fe0/1 and below ?
    In this case, I can have 2 different subnet so that routing and occur between MyRouter to MyFirewall ?
    Q4) Actually with regards to the question on whether MyRouter needs to be connected to the switch is because from what I have understand, a packet need to have both the L3 ip addresses and L2 mac addresses to be send out.
    Since the firewall is forwarding a packet from node1 to the MyRouter, it needs to know MyRouter mac address, so I am asking if an ARP request can be done directly from the connection from MyFirewall to MyRouter..
    Actually, is there a routing table inside the Firewall as well ? how does it knows where to forward the packet out ?
    Q5) I understand that it will be good to do NAT and I have been hearing from people that assigning public IPs on the nodes are bad. But why ?
    If I have assigned public IPs on the nodes, doesn't the packets still go through the firewall for whatever inspection that is needed as compared to NAT ?
    Jon, just a shoutout and thanks on the replies that you have given me as I do not really have anyone to ask except for the forums around.
    Thank you.
    Regards,
    Noob

  • Need understanding on the ADDM

    Hi,
    Db version 11.2.0.3
    EBS version 12.1.3
    OS : Linux
    I have 2 SEV-1 SR's going on with Oracle on which we are working with them. I ran a ADDM from yesterday Morning till today afternoon( Almost 25 Hours).
    My understanding :
    1. Update query 85ag5gkm9wzmb is taking maximum of time and resources ( One SR is for this - this is Autoinvoice Master Program).
    2. SGA and PGA are undersized. Current SGA is 24Gb and PGA is 6Gb. Do I really need to increase SGA and PGA ? My previous has been that on increasing
    SGA/PGA to suggested value , it will further prompt for increasing.
    3. SYS.DBMS_SPACE.AUTO_SPACE_ADVISOR_JOB_PROC needs some action from my end, should I disable this job , what does it really do ? i am trying to figure that out ,
    any help on this will be appreciated.
    Please confirm if my understanding is correct and other suggestion/inputs you can provide. Also please suggest how to find if I/O is a bottleneck in the system ? I can see db file sequential read and db file scattered reads in the AWR but they are mostly by the update statement 85ag5gkm9wzmb.
    Below is the ADDM for reference.
              ADDM Report for Task 'TASK_10569'
    Analysis Period
    AWR snapshot range from 6708 to 6733.
    Time period starts at 19-DEC-13 11.30.37 AM
    Time period ends at 20-DEC-13 12.30.43 PM
    Analysis Target
    Database 'PROD' with DB ID 221722471.
    Database version 11.2.0.3.0.
    ADDM performed an analysis of instance PROD, numbered 1 and hosted at
    hostname.domainname.in.
    Activity During the Analysis Period
    Total database time was 448593 seconds.
    The average number of active sessions was 4.98.
    Summary of Findings
       Description                               Active Sessions      Recommendations
                                                 Percent of Activity  
    1  Top SQL Statements                        3.44 | 69.1          6
    2  Top Segments by "User I/O" and "Cluster"  2.64 | 53.06         5
    3  Undersized SGA                            .94 | 18.91          1
    4  Undersized PGA                            .28 | 5.66           0
    5  PL/SQL Execution                          .19 | 3.9            5
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              Findings and Recommendations
    Finding 1: Top SQL Statements
    Impact is 3.44 active sessions, 69.1% of total activity.
    SQL statements consuming significant database time were found. These
    statements offer a good opportunity for performance improvement.
       Recommendation 1: SQL Tuning
       Estimated benefit is 2.26 active sessions, 45.37% of total activity.
       Action
          Run SQL Tuning Advisor on the UPDATE statement with SQL_ID
          "85ag5gkm9wzmb".
          Related Object
             SQL statement with SQL_ID 85ag5gkm9wzmb.
             UPDATE RA_CUST_TRX_LINE_GL_DIST LGD SET (AMOUNT, ACCTD_AMOUNT) =
             (SELECT /*+ index(rec1 RA_CUST_TRX_LINE_GL_DIST_N6) ordered */
             NVL(LGD.AMOUNT, 0) - ( SUM(LGD2.AMOUNT) - ( DECODE(LGD.GL_DATE,
             REC1.GL_DATE, 1, 0) * CTL.EXTENDED_AMOUNT ) ), NVL(LGD.ACCTD_AMOUNT,
             0) - ( SUM(LGD2.ACCTD_AMOUNT) - ( DECODE(LGD.GL_DATE, REC1.GL_DATE,
             1, 0) * DECODE(:B2 , NULL, ROUND( CTL.EXTENDED_AMOUNT *
             NVL(CT.EXCHANGE_RATE,1), :B3 ), ROUND( ( CTL.EXTENDED_AMOUNT *
             NVL(CT.EXCHANGE_RATE,1) ) / :B2 ) * :B2 ) ) ) FROM
             RA_CUSTOMER_TRX_LINES CTL, RA_CUSTOMER_TRX CT,
             RA_CUST_TRX_LINE_GL_DIST LGD2, RA_CUST_TRX_LINE_GL_DIST REC1 WHERE
             CTL.CUSTOMER_TRX_LINE_ID = LGD2.CUSTOMER_TRX_LINE_ID AND
             CTL.CUSTOMER_TRX_ID = CT.CUSTOMER_TRX_ID AND LGD.CUSTOMER_TRX_LINE_ID
             = CTL.CUSTOMER_TRX_LINE_ID AND LGD2.ACCOUNT_SET_FLAG = 'N' AND
             REC1.CUSTOMER_TRX_ID = CT.CUSTOMER_TRX_ID AND REC1.ACCOUNT_CLASS =
             'REC' AND REC1.LATEST_REC_FLAG = 'Y' AND NVL(LGD.GL_DATE, TO_DATE(
             2415021, 'J') ) = NVL(LGD2.GL_DATE, TO_DATE( 2415021, 'J') ) GROUP BY
             CTL.CUSTOMER_TRX_LINE_ID, REC1.GL_DATE, CTL.EXTENDED_AMOUNT,
             CTL.REVENUE_AMOUNT, CT.EXCHANGE_RATE ), PERCENT = (SELECT /*+
             index(rec2 RA_CUST_TRX_LINE_GL_DIST_N6) */ DECODE(LGD.ACCOUNT_CLASS
             || LGD.ACCOUNT_SET_FLAG, 'SUSPENSEN', LGD.PERCENT, 'UNBILLN',
             LGD.PERCENT, 'UNEARNN', LGD.PERCENT, NVL(LGD.PERCENT, 0) - (
             SUM(NVL(LGD4.PERCENT, 0)) - DECODE(REC2.GL_DATE, NVL(LGD.GL_DATE,
             REC2.GL_DATE), 100, 0) ) ) FROM RA_CUST_TRX_LINE_GL_DIST LGD4,
             RA_CUST_TRX_LINE_GL_DIST REC2 WHERE LGD.CUSTOMER_TRX_LINE_ID =
             LGD4.CUSTOMER_TRX_LINE_ID AND REC2.CUSTOMER_TRX_ID =
             LGD.CUSTOMER_TRX_ID AND REC2.CUSTOMER_TRX_ID = LGD4.CUSTOMER_TRX_ID
             AND REC2.ACCOUNT_CLASS = 'REC' AND REC2.LATEST_REC_FLAG = 'Y' AND
             LGD4.ACCOUNT_SET_FLAG = LGD.ACCOUNT_SET_FLAG AND
             DECODE(LGD4.ACCOUNT_SET_FLAG, 'Y', LGD4.ACCOUNT_CLASS,
             LGD.ACCOUNT_CLASS) = LGD.ACCOUNT_CLASS AND NVL(LGD.GL_DATE, TO_DATE(
             2415021, 'J') ) = NVL(LGD4.GL_DATE, TO_DATE( 2415021, 'J') ) GROUP BY
             REC2.GL_DATE, LGD.GL_DATE ), LAST_UPDATED_BY = :B1 , LAST_UPDATE_DATE
             = SYSDATE WHERE CUST_TRX_LINE_GL_DIST_ID IN (SELECT /*+ index(rec3
             RA_CUST_TRX_LINE_GL_DIST_N6) */ MIN(DECODE(LGD3.GL_POSTED_DATE, NULL,
             LGD3.CUST_TRX_LINE_GL_DIST_ID, NULL) ) FROM RA_CUSTOMER_TRX_LINES
             CTL, RA_CUSTOMER_TRX T, RA_CUST_TRX_LINE_GL_DIST LGD3,
             RA_CUST_TRX_LINE_GL_DIST REC3 WHERE T.REQUEST_ID = :B5 AND
             T.CUSTOMER_TRX_ID = CTL.CUSTOMER_TRX_ID AND (CTL.LINE_TYPE IN (
             'TAX','FREIGHT','CHARGES','SUSPENSE' ) OR (CTL.LINE_TYPE = 'LINE' AND
             CTL.ACCOUNTING_RULE_ID IS NULL )) AND LGD3.CUSTOMER_TRX_LINE_ID =
             CTL.CUSTOMER_TRX_LINE_ID AND LGD3.ACCOUNT_SET_FLAG = 'N' AND
             REC3.CUSTOMER_TRX_ID = T.CUSTOMER_TRX_ID AND REC3.ACCOUNT_CLASS =
             'REC' AND REC3.LATEST_REC_FLAG = 'Y' AND
             NVL(T.PREVIOUS_CUSTOMER_TRX_ID, -1) = DECODE(:B4 , 'INV', -1,
             'REGULAR_CM', T.PREVIOUS_CUSTOMER_TRX_ID,
             NVL(T.PREVIOUS_CUSTOMER_TRX_ID, -1) ) GROUP BY
             CTL.CUSTOMER_TRX_LINE_ID, LGD3.GL_DATE, REC3.GL_DATE,
             CTL.EXTENDED_AMOUNT, CTL.REVENUE_AMOUNT, T.EXCHANGE_RATE HAVING (
             SUM(NVL(LGD3.AMOUNT, 0)) <> CTL.EXTENDED_AMOUNT *
             DECODE(LGD3.GL_DATE, REC3.GL_DATE, 1, 0) OR
             SUM(NVL(LGD3.ACCTD_AMOUNT, 0)) <> DECODE(LGD3.GL_DATE, REC3.GL_DATE,
             1, 0) * DECODE(:B2 , NULL, ROUND( CTL.EXTENDED_AMOUNT *
             NVL(T.EXCHANGE_RATE,1), :B3 ), ROUND( ( CTL.EXTENDED_AMOUNT *
             NVL(T.EXCHANGE_RATE,1) ) / :B2 ) * :B2 ) ) UNION SELECT /*+
             index(rec5 RA_CUST_TRX_LINE_GL_DIST_N6) INDEX (lgd5
             ra_cust_trx_line_gl_dist_n6) index(ctl2 ra_customer_trx_lines_u1) */
             TO_NUMBER( MIN(DECODE(LGD5.GL_POSTED_DATE||LGD5.ACCOUNT_CLASS||
             LGD5.ACCOUNT_SET_FLAG, 'REVN', LGD5.CUST_TRX_LINE_GL_DIST_ID, 'REVY',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'TAXN', LGD5.CUST_TRX_LINE_GL_DIST_ID,
             'TAXY', LGD5.CUST_TRX_LINE_GL_DIST_ID, 'FREIGHTN',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'FREIGHTY',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'CHARGESN',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'CHARGESY',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'UNEARNY',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, 'UNBILLY',
             LGD5.CUST_TRX_LINE_GL_DIST_ID, NULL ) ) ) FROM
             RA_CUST_TRX_LINE_GL_DIST LGD5, RA_CUST_TRX_LINE_GL_DIST REC5,
             RA_CUSTOMER_TRX_LINES CTL2, RA_CUSTOMER_TRX T WHERE T.REQUEST_ID =
             :B5 AND T.CUSTOMER_TRX_ID = REC5.CUSTOMER_TRX_ID AND
             CTL2.CUSTOMER_TRX_LINE_ID = LGD5.CUSTOMER_TRX_LINE_ID AND
             REC5.CUSTOMER_TRX_ID = LGD5.CUSTOMER_TRX_ID AND REC5.ACCOUNT_CLASS =
             'REC' AND REC5.LATEST_REC_FLAG = 'Y' AND (CTL2.LINE_TYPE IN (
             'TAX','FREIGHT','CHARGES','SUSPENSE') OR (CTL2.LINE_TYPE = 'LINE' AND
             (CTL2.ACCOUNTING_RULE_ID IS NULL OR LGD5.ACCOUNT_SET_FLAG = 'Y' )))
             GROUP BY LGD5.CUSTOMER_TRX_LINE_ID, LGD5.GL_DATE, REC5.GL_DATE,
             LGD5.ACCOUNT_SET_FLAG, DECODE(LGD5.ACCOUNT_SET_FLAG, 'N', NULL,
             LGD5.ACCOUNT_CLASS) HAVING SUM(NVL(LGD5.PERCENT, 0)) <> DECODE(
             NVL(LGD5.GL_DATE, REC5.GL_DATE), REC5.GL_DATE, 100, 0) )
       Rationale
          The SQL spent 100% of its database time on CPU, I/O and Cluster waits.
          This part of database time may be improved by the SQL Tuning Advisor.
       Rationale
          Database time for this SQL was divided as follows: 100% for SQL
          execution, 0% for parsing, 0% for PL/SQL execution and 0% for Java
          execution.
       Rationale
          SQL statement with SQL_ID "85ag5gkm9wzmb" was executed 20 times and had
          an average elapsed time of 9763 seconds.
       Rationale
          Top level calls to execute the PL/SQL statement with SQL_ID
          "gccbpwamzp78q" are responsible for 100% of the database time spent on
          the UPDATE statement with SQL_ID "85ag5gkm9wzmb".
          Related Object
             SQL statement with SQL_ID gccbpwamzp78q.
             declare l_header_rounding_flag VARCHAR2 ( 1 ) ; BEGIN select
             trx_header_level_rounding into l_header_rounding_flag from
             ar_system_parameters ; :return_value:i_return_value := arp_rounding .
             correct_dist_rounding_errors ( :request_id , NULL , NULL ,
             :rows_processed:i_rows_processed , :error_msg:i_error_msg , NULL ,
             NULL , :trx_class , 'N' , :debug_mode , l_header_rounding_flag , 'N'
             ) ; END ;
       Recommendation 2: SQL Tuning
       Estimated benefit is .42 active sessions, 8.39% of total activity.
       Action
          Run SQL Tuning Advisor on the SELECT statement with SQL_ID
          "d9xccqfmfjvns".
          Related Object
             SQL statement with SQL_ID d9xccqfmfjvns.
             SELECT RCT.CUSTOMER_TRX_ID K_TRX_ID, RCT.TRX_NUMBER, SUM
             (APS.AMOUNT_DUE_REMAINING) CM_AMOUNT_APPLIED,RCT.TRX_DATE FROM
             APPS.RA_CUSTOMER_TRX_ALL RCT, APPS.AR_PAYMENT_SCHEDULES_ALL APS,
             APPS.RA_CUST_TRX_TYPES_ALL TCTTA, APPS.AR_CUSTOMERS AC,
             APPS.HZ_CUSTOMER_PROFILES HCP, APPS.RA_TERMS RT WHERE
             RCT.CUST_TRX_TYPE_ID = TCTTA.CUST_TRX_TYPE_ID AND AC.CUSTOMER_ID =
             RCT.BILL_TO_CUSTOMER_ID AND RCT.CUSTOMER_TRX_ID=APS.CUSTOMER_TRX_ID
             AND AC.CUSTOMER_ID = HCP.CUST_ACCOUNT_ID AND RCT.BILL_TO_SITE_USE_ID
             = HCP.SITE_USE_ID AND RT.TERM_ID = HCP.STANDARD_TERMS AND TCTTA.TYPE
             IN ('INV') AND UPPER(TCTTA.NAME) IN ( SELECT UPPER(MEANING) FROM
             FND_LOOKUP_VALUES WHERE LOOKUP_TYPE = :B3 ) AND RCT.TRX_DATE <= NVL
             (TO_DATE(:B2 , 'RRRR/MM/DD HH24:MI:SS'), RCT.TRX_DATE) AND
             AC.CUSTOMER_ID = :B1 GROUP BY RCT.CUSTOMER_TRX_ID,
             RCT.TRX_NUMBER,RCT.TRX_DATE HAVING SUM (APS.AMOUNT_DUE_REMAINING) > 0
             ORDER BY RCT.TRX_DATE
       Rationale
          The SQL spent 100% of its database time on CPU, I/O and Cluster waits.
          This part of database time may be improved by the SQL Tuning Advisor.
       Rationale
          Database time for this SQL was divided as follows: 100% for SQL
          execution, 0% for parsing, 0% for PL/SQL execution and 0% for Java
          execution.
       Rationale
          SQL statement with SQL_ID "d9xccqfmfjvns" was executed 123412 times and
          had an average elapsed time of 0.29 seconds.
       Rationale
          Top level calls to execute the PL/SQL statement with SQL_ID
          "bcxz2s8wj5spc" are responsible for 100% of the database time spent on
          the SELECT statement with SQL_ID "d9xccqfmfjvns".
          Related Object
             SQL statement with SQL_ID bcxz2s8wj5spc.
             BEGIN XXSD_APPLY_CM_APPLY_TO_INV(:errbuf,:rc,:A0,:A1,:A2,:A3); END;
       Recommendation 3: SQL Tuning
       Estimated benefit is .3 active sessions, 6.04% of total activity.
       Action
          Run SQL Tuning Advisor on the SELECT statement with SQL_ID
          "2ujt2fg615ymk".
          Related Object
             SQL statement with SQL_ID 2ujt2fg615ymk.
             SELECT HP.PARTY_NAME PARTY_NAME, RCT.TRX_NUMBER TRX_NUMBER,
             RCT.TRX_DATE TRX_DATE, APS.AMOUNT_DUE_ORIGINAL AMOUNT_DUE_ORIGINAL,
             APS.AMOUNT_DUE_REMAINING OUTSTANDING_AMOUNT, RCTT.NAME
             TRANSACTION_TYPE FROM RA_CUSTOMER_TRX_ALL RCT,
             AR_PAYMENT_SCHEDULES_ALL APS, RA_CUST_TRX_TYPES_ALL RCTT,
             HZ_CUST_ACCOUNTS HCA, HZ_PARTIES HP, APPS.AR_CUSTOMERS AC,
             APPS.HZ_CUSTOMER_PROFILES HCP, APPS.RA_TERMS RT, HZ_PARTY_SITES HPS,
             HZ_CUST_ACCT_SITES_ALL HCASA, HZ_CUST_SITE_USES_ALL HCSUA WHERE 1 = 1
             AND RCT.BILL_TO_CUSTOMER_ID = HCA.CUST_ACCOUNT_ID AND HCA.PARTY_ID =
             HP.PARTY_ID AND APS.CUSTOMER_TRX_ID = RCT.CUSTOMER_TRX_ID AND
             APS.ORG_ID = RCT.ORG_ID AND RCTT.CUST_TRX_TYPE_ID =
             RCT.CUST_TRX_TYPE_ID AND RCTT.ORG_ID = RCT.ORG_ID AND AC.CUSTOMER_ID
             = HCA.CUST_ACCOUNT_ID AND AC.CUSTOMER_ID = RCT.BILL_TO_CUSTOMER_ID
             AND AC.CUSTOMER_ID = HCP.CUST_ACCOUNT_ID AND RCT.BILL_TO_SITE_USE_ID
             = HCP.SITE_USE_ID AND RT.TERM_ID = HCP.STANDARD_TERMS AND
             HPS.PARTY_SITE_ID = HCASA.PARTY_SITE_ID AND HCASA.CUST_ACCOUNT_ID =
             AC.CUSTOMER_ID AND HCASA.CUST_ACCT_SITE_ID = HCSUA.CUST_ACCT_SITE_ID
             AND HCSUA.SITE_USE_ID = RCT.BILL_TO_SITE_USE_ID AND RCT.TRX_DATE
             BETWEEN NVL (TO_DATE (:B6 , 'RRRR/MM/DD HH24:MI:SS' ), '1-JAN-1900' )
             AND NVL (TO_DATE (:B5 , 'RRRR/MM/DD HH24:MI:SS' ), '31-DEC-2100' )
             AND RCTT.NAME = NVL (:B4 , RCTT.NAME) AND RT.TERM_ID = NVL (:B3 ,
             RT.TERM_ID) AND HP.PARTY_NAME = NVL (:B2 , HP.PARTY_NAME) AND ( (CASE
             WHEN :B1 = 'Open' THEN APS.AMOUNT_DUE_REMAINING END != 0 ) OR ((CASE
             WHEN :B1 = 'Closed' THEN APS.AMOUNT_DUE_REMAINING END = 0 ) ) OR CASE
             WHEN :B1 IS NULL THEN 1 END = 1 )
       Rationale
          The SQL spent 100% of its database time on CPU, I/O and Cluster waits.
          This part of database time may be improved by the SQL Tuning Advisor.
       Rationale
          Database time for this SQL was divided as follows: 100% for SQL
          execution, 0% for parsing, 0% for PL/SQL execution and 0% for Java
          execution.
       Rationale
          SQL statement with SQL_ID "2ujt2fg615ymk" was executed 19 times and had
          an average elapsed time of 1368 seconds.
       Rationale
          At least 2 distinct execution plans were utilized for this SQL statement
          during the analysis period.
       Rationale
          Top level calls to execute the PL/SQL statement with SQL_ID
          "g969dx1d0uucf" are responsible for 100% of the database time spent on
          the SELECT statement with SQL_ID "2ujt2fg615ymk".
          Related Object
             SQL statement with SQL_ID g969dx1d0uucf.
             BEGIN XXSD_TRX_DETAIL_REPORT(:errbuf,:rc,:A0,:A1,:A2,:A3,:A4,:A5);
             END;
       Recommendation 4: SQL Tuning
       Estimated benefit is .2 active sessions, 4.04% of total activity.
       Action
          Run SQL Tuning Advisor on the SELECT statement with SQL_ID
          "gy02p15c6bf0w".
          Related Object
             SQL statement with SQL_ID gy02p15c6bf0w.
             SELECT SUM (RECEIPTS) -  SUM (PAYMENTS)  FROM (SELECT
             AIP.ACCOUNTING_DATE GL_DATE , DECODE(NVL(APC.VENDOR_NAME ,
             APC.REMIT_TO_SUPPLIER_NAME )  , 'FD Investment' , 'FD' , 'Payment' ) 
             TYPE , APC.DOC_SEQUENCE_VALUE VOUCHER_NO , APC.CREATION_DATE
             VOUCHER_DATE , TO_CHAR (APC.CHECK_NUMBER )  CHECK_NUMBER , TO_CHAR
             (NVL(APC.FUTURE_PAY_DUE_DATE , APC.CHECK_DATE )  , 'DD-MON-YYYY' ) 
             CHECK_DATE , NVL(APC.VENDOR_NAME , APC.REMIT_TO_SUPPLIER_NAME ) 
             VENDOR_NAME , API.ACCTS_PAY_CODE_COMBINATION_ID ACCOUNT_CODE ,
             'Supplier Payment' DESCRIPTION , TO_CHAR (DECODE(SIGN(SUM
             (AIP.AMOUNT) )  , -1 , SUM (AIP.AMOUNT *  NVL(AIP.EXCHANGE_RATE , 1 )
             ) *  -1  , SUM (0) )  )  RECEIPTS , TO_CHAR (DECODE(SIGN(SUM
             (AIP.AMOUNT) )  , 1 , SUM (AIP.AMOUNT *  NVL(AIP.EXCHANGE_RATE , 1 ) 
             ) , SUM (0) )  )  PAYMENTS , TO_NUMBER (SUM (AIP.AMOUNT * 
             NVL(AIP.EXCHANGE_RATE , 1 )  ) )  PAYMENTS1 , CBA.BANK_ACCOUNT_NAME
             BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM BANK_ACCOUNT_NUM ,
             BANK.PARTY_NAME BANK_NAME , BRANCH.PARTY_NAME BRANCH_NAME FROM
             APPS.AP_INVOICE_PAYMENTS_ALL AIP , APPS.AP_INVOICES_ALL API ,
             APPS.AP_CHECKS_ALL APC , APPS.CE_BANK_ACCOUNTS CBA ,
             APPS.CE_BANK_ACCT_USES_ALL CBU , HZ_PARTIES BANK , HZ_PARTIES BRANCH 
             WHERE API.INVOICE_ID =  AIP.INVOICE_ID  AND AIP.CHECK_ID = 
             APC.CHECK_ID  AND APC.CE_BANK_ACCT_USE_ID =  CBU.BANK_ACCT_USE_ID 
             AND CBA.BANK_ACCOUNT_ID =  CBU.BANK_ACCOUNT_ID  AND CBA.BANK_ID = 
             BANK.PARTY_ID  AND CBA.BANK_BRANCH_ID =  BRANCH.PARTY_ID  AND ( (
             APC.STATUS_LOOKUP_CODE IN ( 'NEGOTIABLE' , 'CLEARED' , 'VOIDED' ,
             'RECONCILED UNACCOUNTED' , 'RECONCILED' , 'CLEARED BUT UNACCOUNTED' )
             AND AIP.ACCOUNTING_DATE <  :b1  AND APC.FUTURE_PAY_DUE_DATE IS NULL 
             )  OR ( APC.STATUS_LOOKUP_CODE IN ( 'NEGOTIABLE' )  AND
             APC.FUTURE_PAY_DUE_DATE <  :b1 ) )  AND CBA.BANK_ACCOUNT_ID =  :b2 
             AND AIP.INVOICE_PAYMENT_TYPE IS NULL   AND ( API.ORG_ID IS NULL   OR
             API.ORG_ID =  :b3 )   GROUP BY AIP.ACCOUNTING_DATE ,
             DECODE(NVL(APC.VENDOR_NAME , APC.REMIT_TO_SUPPLIER_NAME )  , 'FD
             Investment' , 'FD' , 'Payment' )  , APC.DOC_SEQUENCE_VALUE ,
             APC.CREATION_DATE , TO_CHAR (APC.CHECK_NUMBER )  , TO_CHAR
             (NVL(APC.FUTURE_PAY_DUE_DATE , APC.CHECK_DATE )  , 'DD-MON-YYYY' )  ,
             NVL(APC.VENDOR_NAME , APC.REMIT_TO_SUPPLIER_NAME )  ,
             API.ACCTS_PAY_CODE_COMBINATION_ID , 'Supplier Payment' ,
             CBA.BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM , BANK.PARTY_NAME ,
             BRANCH.PARTY_NAME  UNION ALL SELECT APID.ACCOUNTING_DATE GL_DATE ,
             DECODE(POV.VENDOR_NAME , 'FD Investment' , 'FD' , 'I' )  TYPE ,
             API.DOC_SEQUENCE_VALUE VOUCHER_NO , API.CREATION_DATE VOUCHER_DATE ,
             API.INVOICE_NUM CHECK_NUMBER , TO_CHAR (API.INVOICE_DATE ,
             'DD-MON-YYYY' )  CHECK_DATE , POV.VENDOR_NAME VENDOR_NAME ,
             API.ACCTS_PAY_CODE_COMBINATION_ID ACCOUNT_CODE , NVL(API.DESCRIPTION
             , API.INVOICE_NUM )  DESCRIPTION , TO_CHAR (SUM (API.INVOICE_AMOUNT *
             NVL(API.EXCHANGE_RATE , 1 )  ) )  RECEIPTS , TO_CHAR (SUM (0) ,
             'fm999999999990.00' )  PAYMENTS , TO_NUMBER (SUM (0) )  PAYMENTS1 ,
             CBA.BANK_ACCOUNT_NAME BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM
             BANK_ACCOUNT_NUM , BANK.PARTY_NAME BANK_NAME , BRANCH.PARTY_NAME
             BRANCH_NAME FROM APPS.AP_INVOICE_DISTRIBUTIONS_ALL APID ,
             APPS.AP_INVOICE_LINES_ALL APLA , APPS.AP_INVOICES_ALL API ,
             APPS.PO_VENDORS POV , APPS.CE_BANK_ACCOUNTS CBA , HZ_PARTIES BANK ,
             HZ_PARTIES BRANCH   WHERE API.INVOICE_ID =  APID.INVOICE_ID  AND
             APLA.INVOICE_ID =  APID.INVOICE_ID  AND APLA.LINE_NUMBER = 
             APID.INVOICE_LINE_NUMBER  AND API.VENDOR_ID =  POV.VENDOR_ID  AND
             CBA.BANK_ACCOUNT_ID =  :b2  AND CBA.ASSET_CODE_COMBINATION_ID = 
             APID.DIST_CODE_COMBINATION_ID  AND CBA.BANK_ID =  BANK.PARTY_ID  AND
             CBA.BANK_BRANCH_ID =  BRANCH.PARTY_ID  AND APID.MATCH_STATUS_FLAG = 
             'A'  AND NVL(API.PAYMENT_STATUS_FLAG , 'N' )  !=  'N'  AND
             APID.ACCOUNTING_DATE <  :b1  AND ( API.ORG_ID IS NULL   OR API.ORG_ID
             =  :b3 )   GROUP BY APID.ACCOUNTING_DATE , DECODE(POV.VENDOR_NAME ,
             'FD Investment' , 'FD' , 'I' )  , API.DOC_SEQUENCE_VALUE ,
             API.CREATION_DATE , API.INVOICE_NUM , TO_CHAR (API.INVOICE_DATE ,
             'DD-MON-YYYY' )  , POV.VENDOR_NAME ,
             API.ACCTS_PAY_CODE_COMBINATION_ID , NVL(API.DESCRIPTION ,
             API.INVOICE_NUM )  , CBA.BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM ,
             BANK.PARTY_NAME , BRANCH.PARTY_NAME  UNION ALL SELECT ACRH.GL_DATE
             GL_DATE , DECODE(ACRH.STATUS , 'REVERSED' , 'REV' ,
             DECODE(ACRH.CREATED_FROM , 'RATE ADJUSTMENT TRIGGER' , 'ERF' ,
             'Receipt' )  )  TYPE , ACR.DOC_SEQUENCE_VALUE VOUCHER_NO ,
             ACR.CREATION_DATE VOUCHER_DATE , ACR.RECEIPT_NUMBER CHECK_NUMBER ,
             TO_CHAR (ACR.RECEIPT_DATE , 'DD-MON-YYYY' )  CHECK_DATE ,
             NVL(SUBSTR(HP.PARTY_NAME , 1 , 50 )  , 'Miscellaneous Activity' ) 
             VENDOR_NAME , ACRH.ACCOUNT_CODE_COMBINATION_ID ACCOUNT_CODE ,
             'Customer Receipt' DESCRIPTION , TO_CHAR (SUM (DECODE(ACRH.STATUS ,
             'REVERSED' , NVL(ADA.ACCTD_AMOUNT_DR , 0 )  , 'CLEARED' ,
             NVL(ADA.ACCTD_AMOUNT_DR , 0 )  , 'REMITTED' , NVL(ADA.ACCTD_AMOUNT_DR
             , 0 )  , 'CONFIRMED' , NVL(ADA.ACCTD_AMOUNT_DR , 0 )  ) ) ,
             'fm999999999990.00' )  RECEIPTS , TO_CHAR (SUM (DECODE(ACRH.STATUS ,
             'REVERSED' , NVL(ADA.ACCTD_AMOUNT_CR , 0 )  , 'CLEARED' ,
             NVL(ADA.ACCTD_AMOUNT_CR , 0 )  , 'REMITTED' , NVL(ADA.ACCTD_AMOUNT_CR
             , 0 )  , 'CONFIRMED' , NVL(ADA.ACCTD_AMOUNT_CR , 0 )  ) ) ,
             'fm999999999990.00' )  PAYMENTS , TO_NUMBER (TO_CHAR (SUM (0) )  ) 
             PAYMENTS1 , CBA.BANK_ACCOUNT_NAME BANK_ACCOUNT_NAME ,
             CBA.BANK_ACCOUNT_NUM BANK_ACCOUNT_NUM , BANK.PARTY_NAME BANK_NAME ,
             BRANCH.PARTY_NAME BRANCH_NAME FROM APPS.AR_CASH_RECEIPT_HISTORY_ALL
             ACRH , APPS.AR_CASH_RECEIPTS_ALL ACR , APPS.HZ_PARTIES HP ,
             APPS.HZ_CUST_ACCOUNTS HCA , APPS.CE_BANK_ACCOUNTS CBA ,
             APPS.CE_BANK_ACCT_USES_ALL CBAU , APPS.AR_DISTRIBUTIONS_ALL ADA ,
             HZ_PARTIES BANK , HZ_PARTIES BRANCH   WHERE ACRH.CASH_RECEIPT_ID = 
             ACR.CASH_RECEIPT_ID  AND CBAU.BANK_ACCT_USE_ID = 
             ACR.REMIT_BANK_ACCT_USE_ID  AND CBAU.BANK_ACCOUNT_ID = 
             CBA.BANK_ACCOUNT_ID  AND HCA.PARTY_ID =  HP.PARTY_ID     AND
             ACR.PAY_FROM_CUSTOMER =  HCA.CUST_ACCOUNT_ID     AND CBA.BANK_ID =
             BANK.PARTY_ID  AND CBA.BANK_BRANCH_ID =  BRANCH.PARTY_ID  AND
             ACRH.STATUS IN ( 'CLEARED' , 'REMITTED' , 'CONFIRMED' , 'REVERSED' ) 
             AND ACRH.CASH_RECEIPT_HISTORY_ID =  ADA.SOURCE_ID  AND
             ADA.SOURCE_TABLE =  'CRH'  AND ADA.SOURCE_TYPE !=  'BANK_CHARGES' 
             AND CBA.BANK_ACCOUNT_ID =  :b2  AND ACRH.GL_DATE <  :b1  AND (
             ACR.ORG_ID IS NULL   OR ACR.ORG_ID =  :b3 )  AND ( (
             ACR.REVERSAL_DATE IS NOT NULL   AND ACRH.STATUS =  'REVERSED' )  OR (
             ACRH.CASH_RECEIPT_HISTORY_ID IN (SELECT INCRH.CASH_RECEIPT_HISTORY_ID
             FROM APPS.AR_CASH_RECEIPT_HISTORY_ALL INCRH   WHERE
             INCRH.CASH_RECEIPT_ID =  ACR.CASH_RECEIPT_ID  AND INCRH.STATUS != 
             'REVERSED'   )) )   GROUP BY ACRH.GL_DATE , DECODE(ACRH.STATUS ,
             'REVERSED' , 'REV' , DECODE(ACRH.CREATED_FROM , 'RATE ADJUSTMENT
             TRIGGER' , 'ERF' , 'Receipt' )  )  , ACR.DOC_SEQUENCE_VALUE ,
             ACR.CREATION_DATE , ACR.RECEIPT_NUMBER , TO_CHAR (ACR.RECEIPT_DATE ,
             'DD-MON-YYYY' )  , NVL(SUBSTR(HP.PARTY_NAME , 1 , 50 )  ,
             'Miscellaneous Activity' )  , ACRH.ACCOUNT_CODE_COMBINATION_ID ,
             'Customer Receipt' , CBA.BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM ,
             BANK.PARTY_NAME , BRANCH.PARTY_NAME  UNION ALL SELECT ACRH.GL_DATE
             GL_DATE , DECODE(ADJ.REASON_CODE ,  NULL  , 'ADJ' , ADJ.REASON_CODE
             ||  ' - ADJ'  )  TYPE , ACR.DOC_SEQUENCE_VALUE VOUCHER_NO ,
             ACR.CREATION_DATE VOUCHER_DATE ,  NULL  CHECK_NUMBER ,  NULL 
             CHECK_DATE , NVL(SUBSTR(HP.PARTY_NAME , 1 , 50 )  , 'Miscellaneous
             Activity' )  VENDOR_NAME , ACRH.ACCOUNT_CODE_COMBINATION_ID
             ACCOUNT_CODE , NVL(ACR.COMMENTS , ACR.RECEIPT_NUMBER )  DESCRIPTION ,
             TO_CHAR (SUM (-1 *  ADJ.AMOUNT ) , 'fm999999999990.00' )  RECEIPTS , 
             NULL  PAYMENTS , TO_NUMBER (TO_CHAR (SUM (0) )  )  PAYMENTS1 ,
             CBA.BANK_ACCOUNT_NAME BANK_ACCOUNT_NAME , CBA.BANK_ACCOUNT_NUM
             BANK_ACCOUNT_NUM , BANK.PARTY_NAME BANK_NAME , BRANCH.PARTY_NAME
             BRANCH_NAME FROM APPS.AR_CASH_RECEIPT_HISTORY_ALL ACRH ,
             APPS.AR_CASH_RECEIPTS_ALL ACR , APPS.HZ_PARTIES HP ,
             APPS.HZ_CUST_ACCOUNTS HCA , APPS.CE_BANK_ACCOUNTS CBA ,
             APPS.CE_BANK_ACCT_USES_ALL CBAU , APPS.AR_RECEIVABLE_APPLICATIONS_ALL
             APP , APPS.AR_ADJUSTMENTS_ALL ADJ , HZ_PARTIES BANK , HZ_PARTIES
             BRANCH   WHERE ACRH.CASH_RECEIPT_ID =  ACR.CASH_RECEIPT_ID  AND
             APP.CASH_RECEIPT_ID =  ACRH.CASH_RECEIPT_ID  AND APP.DISPLAY =  'Y' 
             AND APP.STATUS =  'APP'  AND APP.APPLICATION_TYPE =  'CASH'  AND
             ADJ.CUSTOMER_TRX_ID =  APP.APPLIED_CUSTOMER_TRX_ID  AND
             ADJ.CHARGEBACK_CUSTOMER_TRX_ID IS NULL   AND ADJ.TYPE =  'CHARGES' 
             AND CBAU.BANK_ACCT_USE_ID =  ACR.REMIT_BANK_ACCT_USE_ID  AND
             CBAU.BANK_ACCOUNT_ID =  CBA.BANK_ACCOUNT_ID  AND ACRH.CASH_RECEIPT_ID
             =  ACR.CASH_RECEIPT_ID  AND HCA.PARTY_ID =  HP.PARTY_ID     AND
             ACR.PAY_FROM_CUSTOMER =  HCA.CUST_ACCOUNT_ID     AND CBA.BANK_ID =
             BANK.PARTY_ID  AND CBA.BANK_BRANCH_ID =  BRANCH.PARTY_ID  AND
             ACRH.STATUS IN ( 'CLEARED' , 'REMITTED' , 'CONFIRMED' , 'REVERSED' ) 
             AND CBA.BANK_ACCOUNT_ID =  :b2  AND ACRH.GL_DATE <  :b1  AND (
             ACR.ORG_ID IS NULL   OR ACR.ORG_ID =  :b3 )  AND ( (
             ACR.REVERSAL_DATE IS NOT NULL   AND ACRH.STATUS =  'REVERSED' )  OR (
             ACRH.CASH_RECEIPT_HISTORY_ID IN (SELECT MIN
             (INCRH.CASH_RECEIPT_HISTORY_ID) FROM APPS.AR_CASH_RECEIPT_HISTORY_ALL
             INCRH   WHERE INCRH.CASH_RECEIPT_ID =  ACR.CASH_RECEIPT_ID  AND
             INCRH.STATUS !=  'REVERSED'   )) )   GROUP BY ACRH.GL_DATE ,
             DECODE(ADJ.REASON_CODE ,  NULL  , 'ADJ' , ADJ.REASON_CODE ||  ' -
             ADJ'  )  , ACR.DOC_SEQUENCE_VALUE , ACR.CREATION_DATE ,  NULL  , 
             NULL  , NVL(SUBSTR(HP.PARTY_NAME , 1 , 50 )  , 'Miscellaneous
             Activity' )  , ACRH.ACCOUNT_CODE_COMBINATION_ID , NVL(ACR.COMMENTS ,
             ACR.RECEIPT_NUMBER )  ,  NULL  , CBA.BANK_ACCOUNT_NAME ,
             CBA.BANK_ACCOUNT_NUM , BANK.PARTY_NAME , BRANCH.PARTY_NAME  UNION ALL
             SELECT PT.TRANSACTION_DATE GL_DATE , DECODE(PT.CREATED_FROM_DIR ,
             'PAYMENT' , 'Payment' )  TYPE , PT.TRXN_REFERENCE_NUMBER VOUCHER_NO ,
             TRUNC (PT.CREATION_DATE )  VOUCHER_DATE , PT.BANK_TRXN_NUMBER
             CHECK_NUMBER , TO_CHAR (PT.TRANSACTION_DATE , 'DD-MON-YYYY' ) 
             CHECK_DATE , DESTBA.BANK_ACCOUNT_NAME VENDOR_NAME ,
             GCC.CODE_COMBINATION_ID ACCOUNT_CODE , 'Inter Bank Transfer' ACC_DESC
             , '0' RECEIPTS , TO_CHAR (SUM (PT.PAYMENT_AMOUNT) )  PAYMENTS ,
             TO_NUMBER (SUM (PT.PAYMENT_AMOUNT) )  PAYMENTS1 ,
             SRCBA.BANK_ACCOUNT_NAME BANK_ACCOUNT_NAME , SRCBA.BANK_ACCOUNT_NUM
             BANK_ACCOUNT_NUM , BANK.PARTY_NAME BANK_NAME , BRANCH.PARTY_NAME
             BRANCH_NAME FROM APPS.HZ_ORGANIZATION_PROFILES SBANKORGPROFILE ,
             APPS.HZ_CODE_ASSIGNMENTS SBANKCA , APPS.HZ_PARTIES SBRANCHPARTY ,
             APPS.HZ_ORGANIZATION_PROFILES SBRANCHORGPROFILE ,
             APPS.HZ_CODE_ASSIGNMENTS SBRANCHCA , APPS.HZ_RELATIONSHIPS SBRREL ,
             APPS.HZ_CODE_ASSIGNMENTS SBRANCHTYPECA , APPS.HZ_CONTACT_POINTS
             SBRANCHCP , APPS.HZ_CONTACT_POINTS SEDICP ,
             APPS.HZ_ORGANIZATION_PROFILES DBANKORGPROFILE ,
             APPS.HZ_CODE_ASSIGNMENTS DBANKCA , APPS.HZ_PARTIES DBRANCHPARTY ,
             APPS.HZ_ORGANIZATION_PROFILES DBRANCHORGPROFILE ,
             APPS.HZ_CODE_ASSIGNMENTS DBRANCHCA , APPS.HZ_RELATIONSHIPS DBRREL ,
             APPS.HZ_CODE_ASSIGNMENTS DBRANCHTYPECA , APPS.HZ_CONTACT_POINTS
             DBRANCHCP , APPS.HZ_CONTACT_POINTS DEDICP ,
             APPS.CE_PAYMENT_TRANSACTIONS PT , APPS.CE_BANK_ACCOUNTS SRCBA ,
             APPS.CE_BANK_ACCOUNTS DESTBA , APPS.XLE_ENTITY_PROFILES SRCLE ,
             APPS.XLE_ENTITY_PROFILES DESTLE , APPS.GL_CODE_COMBINATIONS GCC ,
             APPS.HZ_PARTIES HZP , HZ_PARTIES BANK , HZ_PARTIES BRANCH   WHERE
             SYSDATE  BETWEEN TRUNC (SBANKORGPROFILE.EFFECTIVE_START_DATE )  AND
             NVL(TRUNC (SBANKORGPROFILE.EFFECTIVE_END_DATE )  , SYSDATE  +  1  )  
             AND SBANKCA.CLASS_CATEGORY =  'BANK_INSTITUTION_TYPE'  AND
             SBANKCA.CLASS_CODE IN ( 'BANK' , 'CLEARINGHOUSE' )  AND
             SBANKCA.OWNER_TABLE_NAME =  'HZ_PARTIES'  AND ( SBANKCA.STATUS =  'A'
             OR SBANKCA.STATUS IS NULL  )  AND SBANKCA.OWNER_TABLE_ID = 
             SBANKORGPROFILE.PARTY_ID  AND SBRANCHPARTY.PARTY_TYPE = 
             'ORGANIZATION'  AND SBRANCHPARTY.STATUS =  'A'  AND
             SBRANCHORGPROFILE.PARTY_ID =  SBRANCHPARTY.PARTY_ID  AND SYSDATE 
             BETWEEN TRUNC (SBRANCHORGPROFILE.EFFECTIVE_START_DATE )  AND
             NVL(TRUNC (SBRANCHORGPROFILE.EFFECTIVE_END_DATE )  , SYSDATE  +  1  )
             AND SBRANCHCA.CLASS_CATEGORY =  'BANK_INSTITUTION_TYPE'  AND
             SBRANCHCA.CLASS_CODE IN ( 'BANK_BRANCH' , 'CLEARINGHOUSE_BRANCH' ) 
             AND SBRANCHCA.OWNER_TABLE_NAME =  'HZ_PARTIES'  AND (
             SBRANCHCA.STATUS =  'A'  OR SBRANCHCA.STATUS IS NULL  )  AND
             SBRANCHCA.OWNER_TABLE_ID =  SBRANCHPARTY.PARTY_ID  AND
             SBANKORGPROFILE.PARTY_ID =  SBRREL.OBJECT_ID  AND
             SBRREL.RELATIONSHIP_TYPE =  'BANK_AND_BRANCH'  AND
             SBRREL.RELATIONSHIP_CODE =  'BRANCH_OF'  AND SBRREL.STATUS =  'A' 
             AND SBRREL.SUBJECT_TABLE_NAME =  'HZ_PARTIES'  AND
             SBRREL.SUBJECT_TYPE =  'ORGANIZATION'  AND SBRREL.OBJECT_TABLE_NAME =
             'HZ_PARTIES'  AND SBRREL.OBJECT_TYPE =  'ORGANIZATION'  AND
             SBRREL.SUBJECT_ID =  SBRANCHPARTY.PARTY_ID  AND
             SBRANCHTYPECA.CLASS_CATEGORY    =  'BANK_BRANCH_TYPE'  AND
             SBRANCHTYPECA.PRIMARY_FLAG    =  'Y'  AND
             SBRANCHTYPECA.OWNER_TABLE_NAME    =  'HZ_PARTIES'  AND
             SBRANCHTYPECA.OWNER_TABLE_ID    =  SBRANCHPARTY.PARTY_ID  AND

    Hi Karan,
    If your DB node has 48 GB and there are no other applications/program running on the server than I believe you still have for room for SGA/PGA resize.
    GSS was scheduled to run at 20% till last week ( runs every week) while i just made it to run for auto_sample_size by giving the percent as 0. I have checked and found that most of the tables had good stats , though one of the programs has started to take too much time after that. So for now i have reverted it back to 20%.
    10% - 20% is the percentage which I usually go with and this works well for me. Anyways that being said 10% default would do the trick in most cases.
    The update statement which is causing the trouble is a seeded oracle program so we have checking that with oracle. ( Auto_invoice_master).
    Yes as recommended, Please get confirmation from SR as well.
    Please also see note:
    How To Setup AutoInvoice For Optimal Performance (Doc ID 1083467.1)
    Troubleshooting AutoInvoice Performance Issues (Doc ID 1089196.1)
    Thanks &
    Best Regards

Maybe you are looking for

  • Filtering multi source data in a Dashboard

    Hello, I want to create a dashboard with multi source data (Tables / XML files) Filtering data from one source it's easy, but what I want is to use the same criteria to filter the rest Each (Table / XML file) Will stored in a separate Excel Tab Examp

  • PSE 8 PRINT PREVIEW PROBLEMS

    I'm using PSE 8 with Vista home version. When I ask for a print preview I get a blank page. Any ideas what I might do? Thanks jft43

  • Jspc -nowrite -keepgenerated does not work correctly

              When you execute           jspc -nowrite -keepgenerated file.jsp           it is not supposed to generated a file.class file but it still is trying to           at least some of the time.           $ java weblogic.jspc -nowrite -keepgenerat

  • Signal strength but no internet via Linksys WAG54G

    Hello there. I am connected to the internet via a Linksys WAG54G ADSL Gateway. On my PowerMac - ethernet-connected - everything is fine, but on my PowerBook I am getting indications that it has successfully connected (using a WEP key) to the home net

  • Does iTunes v11.1 support opening playlists in separate windows?

    Just curious is if iTunes v11.1 supports opening playlists in separate windows as iTunes v10 does.  Anyone checked this out?