Latch free(SQL memory manager latch)

Hi All,
Can somene help me in finding anything about "latch free(SQL memory manager latch)". This latch is causing sqls to perform badly. Will be thankful if someone provide the resolution plan for this latch.
Thanks in advance.

Hi,
Thanks for your reply but here in this case I know this is "SQL memory manager latch". All I wanted to know about this latch and resolution.

Similar Messages

  • SQL memory manager latch at top of the list

    select * from V$LATCH order by wait_time desc shows wait time = 451524661079 on SQL memory manager latch. What is making this so high?

    user498912 wrote:
    Thank you .. the pointer to the bug is helpful. We are having performance issues and complaints of slowness only during about a 2 or 3 hour window each weekday from about 7AM to 10AM EDT. This is definitely peak load. AWR is showing mostly disk i/o issues. Plan is to add about 20 GB more memory on the server. SGA currently at around 61GB with Automatic Shared Memory Management enabled. PGA advice showing nothing with a Cache Hit Percentage (%) 95.93
    I would look at v$sga_resize_ops (or v$memory_resize_ops) to see if there is pressure to move memory around in that time period. Your symptoms could simply be showing load on the buffer cache causing the library cache to shrink leading to agressive demands for library cache locks etc. If so, then fixing a minum shared_pool_size (or generally going to manual memory management) may be the best bet. Also worth checking if there is some inefficient SQL running at that time that results in lots of random I/O - eliminating the cause of disk reads may be the best solution to reducing demand for memory.
    Regards
    Jonathan Lewis

  • Oracle 9i Automatic PGA Memory Management

    Hello,
    my team and me, we are facing difficulties to change the size of the PGA used by our server processes for HASH JOIN, SORT... operators,
    here you can see the results of "select * from v$pgastat":
    [pgastat dynamic view results|http://pastebin.com/m210314dc]
    We have been increasing consecutively our pga_aggregate_target parameter from 1.7 Gb initially to 4Gb then at the end 6Gb, the value of "Global memory bound" and " aggregate pga auto target" on the link above are still equal to 0.
    I have been reading threads on the forum and documentation see below, I understand how the global memory manager (CKPT) computest the sql memory target and then the global memory bound, as far as I understand I can only "play" on the pga_aggregate_target value in order to increase the size of our PGAs (I exclude to play with hidden parameters).
    - Joze Senegacnik: Advanced Management of working areas in Oracle 9i/10g : http://tonguc.yilmaz.googlepages.com/JozeSenegacnik-PGAMemoryManagementvO.zip
    - Dageville Benoit and Zait Mohamed: SQL memory management in oracle 9i
    Here different information that could be usefull:
    OS: solaris 10 (db running in a non global zone)
    Arch: 64-bit sparcv9 kernel modules
    Physical memory: 32 Gb (being shared between all non global zones)
    Oracle version: 9.2.0.5 32bits
    Values of init parameters and hidden parameters that could be relevant:
    [init parameters|http://pastebin.com/m40340cf4]
    [hidden parameters|http://pastebin.com/m50d74c53]
    Maybe useful queries:
    over work areas views, I use the following script:
    [wa_analysis.sql|http://pastebin.com/d606ebd9b]
    and the result of it:
    [result of script wa_analysis.sql|http://pastebin.com/m5f49a2e5]

    Joze Senegacnik wrote:
    - either your sessions are using a lot of memory for storing variables like pl/sql arrays which is subtracted from automatic management: PGA_AGGREGATE_TARGET - (aggregated persistent area + a part of the run time area of all server processes)
    - you are hitting a bug
    - or maybe something elseI am really happy you come to this conclusion too, they are the same we made with my team and we have submitting to Oracle support via metalink SR 3-1216060641, we were asking if we hit the following bug (in note 1) or we leak about pl/sql or java... or else indeed,
    note 1: PGA_AGGREGATE_TARGET Assigned Memory Is Left Unconsumed When Set High [ID 844542.1]
    Joze Senegacnik wrote:
    I would like to know:
    1.) what were the values for global memory bound and autotarget immediately (or in short time) after the database restart or when you have increased them Just after the restart of the database and just after the change of P_A_T, we query v$pgastat immediately after and the value of global memory bound and auto target were equal to 0 byte,
    2.) If you are able to change value of PGA_AGGREGATE_TARGET (P_A_T) to 10GB what happens with global memory bound and auto traget. They should be positive at least for a short time. As this is a dynamic parameter you can change it for a short time, run queries and set it back.We plan to do this tonight, we have an "heavy" ITIL change management procedures that allow us to make changes approved by change manager and only during night maintenance window on production system, I come back to you tomorrow. But we have been increasing from 1,7Gb to 4Gb to 6Gb, each time I have been querying v$sgastat in the next 2 mins and global memory bound and auto target were equal to 0 byte.
    3.) Have you checked on the OS level how much memory are using server processes - do these numbers come along with what Oracle says. Not during problematic activities, meaning active work areas performing HASH-JOIN, SORT... operators,
    unfortunately it is a production system, even if he performs poorly, we are not allowed to try or retry the poor queries, but if it comes again I'll do it,
    during low activities, here the results paste with the scripts I used:
    [pga processes info in oracle|http://pastebin.com/f2e540062]
    I spooled the result rows of this previous script in /var/tmp/pga_processes.log then I loop over all processes pid and display pmap output anon info like this:
    h5. cat /var/tmp/pga_processes.log | awk -F' ' '{print $5}' | xargs -n 1 -i pmap -x {}| grep -v 'Addres' |egrep 'Kb' 2>&1 > /var/tmp/pga_processes_os.log
    then I merge line by line the two files with unix paste command, here the results:
    [os and oracle pga informations|http://pastebin.com/f4135c8a6]
    4.) How many server processes are running on you system in average/max and are you using just dedicated processes or also shared?in average 250, we are only using dedicated processes,
    5.) At time of low activity is the global memory bound still 0 or becomes > 0. I have been querying every 15 min during more than 24 hours low activities, it still stay to 0,
    5.) Are you experiencing paging/swapping on OS level?No, here orca figures for details:
    [free memory|http://img509.imageshack.us/img509/5897/ohuron1asd2gauge1024xfr.png]
    swap
    [pagein pageout|http://img121.imageshack.us/img121/6946/ohuron1asd2gaugepginper.png]
    [memory usage|http://img19.imageshack.us/img19/2213/ohuron1asd2gaugeppkerne.png]
    6.) Please post the result of: select * from X$QESMMSGA ;during low activities, [results X$QESMMSGA|http://pastebin.com/f61df7093]
    While you will be answering to my questions I'll try to figure out what we can do to properly diagnose the problem. As you are on 9i it is a little bit harder.I am really kind of your help, as we say in my country, "if you need tow arms one day to carry something, call me."
    --Jeremy Baumont                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • What is difference between 32 bit and 64 bit sql server memory management

    What is difference between 32 bit and 64 bit sql server memory management
    Thanks
    Shashikala

    This is the basic difference...check if helps:
    A 32-bit CPU running 32-bit software (also known as the x86 platform) is so named because it is based on an architecture that can manipulate values that are up to 32 bits in length. This means that a 32-bit memory pointer can store a value between 0 and
    4,294,967,295 to reference a memory address. This equates to a maximum addressable space of 4GB on 32-bit platforms
    On the other hand 64-bit limit of 18,446,744,073,709,551,616, this number is so large that in memory/storage terminology it equates to 16 exabytes. You don’t come across that term very often, so to help understand the scale, here is the value converted to
    more commonly used measurements: 16 exabytes = 16,777,216 petabytes (16 million PB)➤ 17,179,869,184 terabytes (17 billion TB)➤ 17,592,186,044,416 gigabytes (17 trillion GB)➤
    As you can see, it is significantly larger than the 4GB virtual address space usable in 32-bit systems; it’s so large in fact that any hardware capable of using it all is sadly restricted to the realm of science fiction. Because of this, processor manufacturers
    decided to only implement a 44-bit address bus, which provides a virtual address space on 64-bit systems of 16TB. This was regarded as being more than enough address space for the foreseeable future and logically it’s split into an 8TB range for user mode
    and 8TB for kernel mode. Each 64-bit process running on an x64 platform will be able to address up to 8TB of VAS.
    Please click the Mark as answer button and vote as helpful if this reply solves your problem

  • Nothing happens when i touch Manage Storage. I ned to delete content to free more memory.

    Nothing happens when I touch Manage Storage in iCloud on My iPhone. I need to delete content to free more memory.

    Because that manages cloud storage, not storage on the phone itself.

  • Java Card Memory Managament: How do you free-up allocated memory?

    I have a problem with java card memory management, that causes the applet to hang. I think the java card runs out of RAM when my applet runs for several iterations or process() calls. My program requires significant size of bytes for each APDU command to be sent. (around 100-250 bytes, for each apdu.sendBytes() call).
    I use a temporary byte array buffer that will contain the APDU command to be sent, declared as:
    private byte [] tmpBuff;Before each process() call, the tmBuff is initialized and contains a new byte array containing the APDU command to be sent. (array size around 100-250 bytes).
    tmpBuff = new byte[] {0x00, ... } On the process() call, the tmpBuff is copied to APDU and sendBytes() function is called. The tmpBuff byte array is reinitialized after every process() call to contain the next command. After about 20 successful commands by the process() call, the applet seems to ran out of RAM and hangs.
    I suspect, that when tmpBuff is reinitialized before each process() call, the Java Card garbage collector does now free-up the memory that was used for the previous tmpBuff byte array initialization.
    Is there a way to reclaim the memory allocated for tmpBuff after it has been initialized?
    Or maybe call the Java card garbage collector?

    Cenon,
    Generally speaking, the new keywork is a bad idea outside the install method or constructors as the JCRE is not guarenteed to have a garbage collector (and if it does, has to be called explicitly by JCSystem.requestObjectDeletion(); This however is slow.
    A better option may be to use memory more efficiently than to rely on garbage collection. A way of doing this would be to have an instance variable that is initialised once and reused. This allows you to use either a transient or persistent array.
    public class TestApplet extends Applet {
        private final static short BUFFER_SIZE = (short) 300;
        private final byte[] buffer;
        private TestApplet() {
            // only have one of the following not commented out
            /* persistent buffer */
            // buffer = new byte[BUFFER_SIZE];
            /* transient buffer (much faster) */
            buffer = JCSystem.makeTransientByteArray(BUFFER_SIZE, JCSystem.CLEAR_ON_DESELECT);
        public static void install(byte[] bArray, short bOffset, byte bLength) {
            // GP-compliant JavaCard applet registration
            new TestApplet().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
        public void process(APDU apdu) {
            // Good practice: Return 9000 on SELECT
            if (selectingApplet()) {
                return;
            // do some work here with buffer
    }In the above code you would be able to use the buffer to build the command and you will not have a memory leak.
    Cheers,
    Shane
    Edited by: safarmer on Jul 8, 2008 12:25 PM

  • How does object memory management works?

    Hi all,
    I'm having a lot of problems with memory which seems not to be released when using objects (on Oracle 9i 9.0.1.1.1). I've prepared the following test:
    create type t_test as object (
    id number,
    member function FunctTest(TBL IN CHAR, expand IN CHAR) return varchar2
    ) not final;
    create or replace type body t_test as
    MEMBER FUNCTION FunctTest(TBL IN CHAR, expand IN CHAR) RETURN varchar2 IS
    BEGIN
    return NULL;
    END FunctTest;
    end;
    create or replace function FunctTest2(TBL IN CHAR, expand IN CHAR) RETURN varchar2 IS
    BEGIN
    return NULL;
    END FunctTest2;
    create table tab_test of t_test;
    insert into tab_test values(1);
    commit;
    As you can see, I create a simple type with a member function, and a schema function who does the same (nothing, in this case). Then I call the two functions with the following PL/SQL blocks:
    declare i integer;
    t varchar2(4000);
    ob t_test;
    begin
    select value(a) into ob from tab_test a where a.id=1;
    for i in 1..5000 loop
    select ob.FunctTest('A','S') into t from dual;
    end loop;
    end;
    declare i integer;
    t varchar2(4000);
    begin
    for i in 1..5000 loop
    select FunctTest2('A','S') into t from dual;
    end loop;
    end;
    If you run these blocks with Task Manager opened (I use W2000) on server console, you can see how memory usage grows very fast with the first block, and how it doesn't change with the second one.
    The memory isn't released till the session is alive.
    I'm trying to develop an object application, but these memory leaks are making me crazy.
    Geoff, does release 2 solve some of these problems?
    In particular, please, do I need to free by myself temporary objects (these ones referenced in PL/SQL blocks)? In which way? I haven't found anything about object memory management in documentation...
    As always,
    Thanks for any support to everybody.
    Andrea Arilotta
    [email protected]

    Andrea,
    Do you have an Oracle Support customer ID? If you can log a TAR on http://metalink.oracle.com with your customer id, someone can take a closer look at this problem.
    Regards,
    Geoff
    Hi all,
    I'm having a lot of problems with memory which seems not to be released when using objects (on Oracle 9i 9.0.1.1.1). I've prepared the following test:
    create type t_test as object (
    id number,
    member function FunctTest(TBL IN CHAR, expand IN CHAR) return varchar2
    ) not final;
    create or replace type body t_test as
    MEMBER FUNCTION FunctTest(TBL IN CHAR, expand IN CHAR) RETURN varchar2 IS
    BEGIN
    return NULL;
    END FunctTest;
    end;
    create or replace function FunctTest2(TBL IN CHAR, expand IN CHAR) RETURN varchar2 IS
    BEGIN
    return NULL;
    END FunctTest2;
    create table tab_test of t_test;
    insert into tab_test values(1);
    commit;
    As you can see, I create a simple type with a member function, and a schema function who does the same (nothing, in this case). Then I call the two functions with the following PL/SQL blocks:
    declare i integer;
    t varchar2(4000);
    ob t_test;
    begin
    select value(a) into ob from tab_test a where a.id=1;
    for i in 1..5000 loop
    select ob.FunctTest('A','S') into t from dual;
    end loop;
    end;
    declare i integer;
    t varchar2(4000);
    begin
    for i in 1..5000 loop
    select FunctTest2('A','S') into t from dual;
    end loop;
    end;
    If you run these blocks with Task Manager opened (I use W2000) on server console, you can see how memory usage grows very fast with the first block, and how it doesn't change with the second one.
    The memory isn't released till the session is alive.
    I'm trying to develop an object application, but these memory leaks are making me crazy.
    Geoff, does release 2 solve some of these problems?
    In particular, please, do I need to free by myself temporary objects (these ones referenced in PL/SQL blocks)? In which way? I haven't found anything about object memory management in documentation...
    As always,
    Thanks for any support to everybody.
    Andrea Arilotta
    [email protected]

  • Unable to Login SQL server management studio:sql server 2005

    Hello All,
    I am unbale to login SQL server management studio with below scanario:
    Server Type:Database Engine
    Server Name:XXX
    Authntication:Windows Auth
    After enter "Connect : button below eeror is displaying
    Error:"Canot connetc to XXX server
    Additional information:
    Attempted to read or write protected memory .This is an often an indication that the other memory is corrupt(System.Data)
    Note:Database is connecting R3trans return code 0000
    SAP is working fine
    Please provide suggestion and inpuits its very urgent
    Thanks
    Nekkalapu

    HI All,
    Issue resolved after rebooting the server.
    Thanks
    Nekkalapu

  • Questions about db_keep_cache_size and Automatic Shared Memory Management

    Hello all,
    I'm coming upon a server that I'm needing to pin a table and some objects in, per the recommendations of an application support call.
    Looking at the database, which is a 5 node RAC cluster (11gr2), I'm looking to see how things are laid out:
    SQL> select name, value, value/1024/1024 value_MB from v$parameter
    2 where name in ('db_cache_size','db_keep_cache_size','db_recycle_cache_size','shared_pool_size','sga_max_size');
    NAME VALUE VALUE_MB
    sga_max_size 1694498816 1616
    shared_pool_size 0 0
    db_cache_size 0 0
    db_keep_cache_size 0 0
    db_recycle_cache_siz 0 0
    e
    Looking at granularity level:
    SQL> select granule_size/value from v$sga_dynamic_components, v$parameter where name = 'db_block_size' and component like 'KEEP%';
    GRANULE_SIZE/VALUE
    2048
    Then....I looked, and I thought this instance was set up with Auto Shared Mem Mgmt....but I see that sga_target size is not set:
    SQL> show parameter sga
    NAME TYPE VALUE
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 1616M
    sga_target big integer 0
    So, I'm wondering first of all...would it be a good idea to switch to Automatic Shared Memory Management? If so, is this as simple as altering system set sga_target =...? Again, this is on a RAC system, is there a different way to do this than on a single instance?
    If that isn't the way to go...let me continue with the table size, etc....
    The table I need to pin is:
    SQL> select sum (blocks) from all_tables where table_name = 'MYTABLE' and owner = 'MYOWNER';
    SUM(BLOCKS)
    4858
    And block size is:
    SQL> show parameter block_size
    NAME TYPE VALUE
    db_block_size integer 8192
    So, the space I'll need in memory for pinning this is:
    4858 * 8192 /1024/1024 = 37.95.......which is well below my granularity mark of 2048
    So, would this be as easy as setting db_keep_cache_size = 2048 with an alter system call? Do I need to set db_cache_size first? What do I set that to?
    Thanks in advance for any suggestions and links to info on this.
    cayenne
    Edited by: cayenne on Mar 27, 2013 10:14 AM
    Edited by: cayenne on Mar 27, 2013 10:15 AM

    JohnWatson wrote:
    This is what you need,alter system set db_keep_cache_size=40M;I do not understand the arithmetic you do here,select granule_size/value from v$sga_dynamic_components, v$parameter where name = 'db_block_size' and component like 'KEEP%';it shows you the number of buffers per granule, which I would not think has any meaning.I'd been looking at some different sites studying this, and what I got from that, was that this granularity gave you the minimum you could set the db_keep_cache_size, that if you tried setting it below this value, it would be bumped up to it, and also, that each bump you gave the keep_cache, would be in increments of the granularity number....?
    Thanks,
    cayenne

  • OSX inactive memory management problems

    On my 2010 Macbook Air 11" running OSX 10.8 Mountain Lion, I have run into some major issues with memory management. This problem persists across both my Mac machines and multiple generations of OSX. I have a 2007 2.2 Ghz Core 2 Duo Macbook Pro Running Lion (upgraded from Tiger) with 3 gb 667Mhz DDR2 RAM and my 2010 Air 1.4Ghz Core 2 Duo (Upgraded from Snow Leopard to Mountain Lion) with 2gb 1067mhz DDR3 RAM. On both machines, for some time now, during normal usage; especially web browsing using Chrome and Safari (respectively); the inactive RAM on both machines will grow to consume around 30% of all RAM and force time consuming page outs to the mass storage drives on both machines. The Pro has a slower hard drive and the problem is the worst here, the air has a much faster SSD. I have found myself constantly having a window of Activity Monitor up on at least one of my desktops watching my RAM usage, using terminal to purge ram upwards of 10 times an hour to prevent costly page outs, especially on the Pro. I know Apple claims that inactive RAM is essentially free RAM that is temporarily storing recently used information for ease of access later and that it's supposed to be released as free memory when needed, but this obviously is not happening. Right now on my air my swap file is over 650Mb and I've seen it top 2Gb before. The air is exponentially better than the Pro due to the faster SSD, but I do notice substantial UI lag and a massive drop in fluidity as soon as my meager 2Gb is full and I start paging. The Pro is another story entirely, the entire system will essentially become unusable, having to wait several seconds for mouse clicks to even register. That's why I upgraded the stock 2Gb of RAM it comes with to 3Gb hoping that a 150% increase in RAM would help, but it just prolonged the inevitable. I still end up paging out just as bad across both systems if un checked. Even when I keep a close eye on memory usage and purge often, I still end up paging out because I'm not vigilant enough.
    I have to limit my browsing to less than 5 tabs and keep my number of open programs less than 2 on both machines. My active and wired memory rarely seem to top 70%, meaning the rest gets taken by inactive, which isn't functioning as Apple claims. Even if my conclusions aobut what is happening under the hood are incorrect, something is going terribly wrong. I can't upgrade the RAM on my Air at all, and the RAM on my Pro is capped at 4Gb. I'm holding on upgrading because I don't think the excess hardware will solve this software memory problem. Whatever is happening is causing a serious drop in performance for me (yes I do know I have underpowered machines), but there has to be something I can do to speed performance. I've read about disabling the dynamic page file entirely, which just seems to crash the system when free memory is gone, and I've read about programs that claim to free memory. Those programs seem to work by taking a high priority in the process heigharchy of the OS and then proceeding to eat up large portions of RAM and releasing them as needed in an attempt to replicate the true intentions of inactive RAM, but I've heard of problems with this method as well. Does anyone have a viable solution? Monitoring my RAM usage myself and ensuring I don't end up paging out is costly, time consuming, annoying, and inefficient since I fail to catch the problem before I page if I get particularly busy. There is no other OS I've ever been acquainted with that has this problem, not any flavor of Linux, not even the dreaded windows. I seriously hope Apple can do something to manage this runaway memory problem. I'd like to be able to open more than 3 windows in Safari. I've had to purge 3 seperate times while writing this on my Air, and I now have 678 inactive memory, 741 inactive, 582 wired, and less than 14Mb free out of 2Gb with a growing swap at 680Mb. Each purge becomes less and less effective and the last one I did freed up only about 100Mb and it got eaten up again by inactive in less than 10 seconds. On my Air, the memory hog is Safari right now at 700Mb between the web content and flash player with only Facebook, youtube, and this Apple Supprt tab open. I have NO other applications running in the fore or background other than Activity Monitor and Terminal. On my Pro the memory hog is always kernel task, I use Chrome and Safari both. While the memory used by the browser does not usually take up the most substantial portion of the total used RAM out of any process, the more tabs I open, the more RAM I use. The browser is usually the second heaviest RAM hog to Kernel Task. So it seems that across the two machines there are two lsightly different manifestations of the same problem with the same results: massive performance drops and extremely annoying and costly page outs no matter the reason. I just want this problem to go away. I've used underpowered windows laptops that can open a dozen tabs in a heavier browser like IE or Firefox while using other programs like Word or Excel and more with no memory lag issues. There's no way in **** I could manage to open that many pages in a browser while using Pages and/or Numbers on either of my machines and expect reliable (swap free performance). This is just kind of sad in my opinion. Does anyone have a way to get my OSX machine running smooth so that I can remove the one thing that windows and Linux fan boys get the right to laugh at my Macs for?

    Hi Zephryl,
    I was actually able to get an initial response from Sun on this a few months ago. However, the Sun Swing team has not followed up on a resolution for this pervasive problem, even though they noticed the same problem when running a test applet I had created for them. Apparently, I.E. is not releasing memory from the heap.
    Below is a quote from a Sun rep. on this in an e-mail sent to me on Dec 4, 2002:
    "I suspected the leak is in the native code because the # of handles and GDI objects keep increasing but no obvious Java objects are left behind in the Java heap during page switch."
    So, until Sun and/or Microsoft work out a solution to this, anyone who uses I.E. 6 and applets for their UI seems to be in a lot of trouble.
    As a note, trying to invoke the Garbage Collector does not do anything, but generally a very small amount of memory will be released (like maybe 5-10% of the memory allocated for the applet).
    Cheers!
    Avi Gray
    Global Computer Enterprises

  • The amount of free SGA memory available in the database

    Hi,
    How can we calculate the amount of free SGA memory available from the instance if the database is not set for Memory management.If the sga_max_size is set for a particular value and the db_cache_size and the shared_pool and all other components are specified,how can one determine whether all the memory allocated for SGA is in use?

    How can we calculate the amount of free SGA memory available from the instance if the database is not set for Memory management.When the SGA is allocated, the memory is fixed, and none of it is "free" really.
    how can one determine whether all the memory allocated for SGA is in use? Are you asking about usage WITHIN the pools? If so, shortly after startup the database buffer and shared_pool will fill-up and stay full . . . . .
    Here is the script that I use to see inside the data buffer contents:
    set pages 999
    set lines 80
    spool blocks.lst
    ttitle 'Contents of Data Buffers'
    drop table t1;
    create table t1 as
    select
    o.object_name object_name,
    o.object_type object_type,
    count(1) num_blocks
    from
    dba_objects o,
    v$bh bh
    where
    o.object_id = bh.objd
    and
    o.owner not in ('SYS','SYSTEM')
    group by
    o.object_name,
    o.object_type
    order by
    count(1) desc
    column c1 heading "Object|Name" format a30
    column c2 heading "Object|Type" format a12
    column c3 heading "Number of|Blocks" format 999,999,999,999
    column c4 heading "Percentage|of object|data blocks|in Buffer" format 999
    select
    object_name c1,
    object_type c2,
    num_blocks c3,
    (num_blocks/decode(sum(blocks), 0, .001, sum(blocks)))*100 c4
    from
    t1,
    dba_segments s
    where
    s.segment_name = t1.object_name
    and
    num_blocks > 10
    group by
    object_name,
    object_type,
    num_blocks
    order by
    num_blocks desc
    Hope this helps. . ..
    Don Burleson
    Oracle Press author

  • RE: (forte-users) memory management

    Brenda,
    When a partition starts, it reserves the MinimumAllocation. Within this
    memory space, objects are created and more and more of this memory is
    actually used. When objects are no longer referenced, they remain in memory
    and the space they occupy remains unusable.
    When the amount of free memory drops below a certain point, the garbage
    collector kicks in, which will free the space occopied by all objects that
    are no longer referenced.
    If garbage collecting can't free enough memory to hold the additional data
    loaded into memory, then the partition will request another block of memory,
    equal to the IncrementAllocation size. The partition will try to stay within
    this new boundary by garbage collecting everytime the available part of this
    memory drops below a certain point. If the partition can't free enough
    memory, it will again request another block of memory.
    This process repeats itself until the partition reaches MaximumAllocation.
    If that amount of memory still isn't enough, then the partition crashes.
    Instrument ActivePages shows the memory reserved by the partition.
    AllocatedPages shows the part of that memory actually used.
    AvailablePages shows the part ot that memory which is free.
    Note that once memory is requested from the operating system, it's never
    released again. Within this memory owned by the partition, the part actually
    used will always be smaller. But this part will increase steadily, until the
    garbage collecter is started and a part of it is freed again.
    There are some settings that determine when the garbage collector is
    started, but I'm not sure which ones they are.
    The garbage collector can be started from TOOL using
    "task.Part.OperatingSystem.RecoverMemory()", but I'm not sure if that will
    always actually start the garbage collector.
    If you track AllocatedPages of a partition, it's always growing, even if the
    partition isn't doing anything. I don't know why.
    If you add AllocatedPages and AvailablePages, you shoud get the value of
    ActivePages, but you won't. You always get a lower number and sometimes even
    considerably lower. I don't know why.
    Pascal Rottier
    Atos Origin Nederland (BAS/West End User Computing)
    Tel. +31 (0)10-2661223
    Fax. +31 (0)10-2661199
    E-mail: Pascal.Rottiernl.origin-it.com
    ++++++++++++++++++++++++++++
    Philip Morris (Afd. MIS)
    Tel. +31 (0)164-295149
    Fax. +31 (0)164-294444
    E-mail: Rottier.Pascalpmintl.ch
    -----Original Message-----
    From: Brenda Cumming [mailto:brenda_cummingtranscanada.com]
    Sent: Tuesday, January 23, 2001 6:40 PM
    To: Forte User group
    Subject: (forte-users) memory management
    I have been reading up on memory management and the
    OperatingSystemAgent, and could use some clarification...
    When a partition is brought online, is the ActivePages value set to the
    MinimumAllocation value, and expanded as required?
    And what is the difference between the ExpandAtPercent and
    ContractAtPercent functions?
    Thanks in advance,
    Brenda
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    The Forte runtime is millions of lines of compiled C++ code, packaged into
    shared libraries (DLL's) which are a number of megabytes in size. The
    space is taken by the application binary, plus the loaded DLL's, plus
    whatever the current size of garbage collected memory is.
    Forte allocates a garbage-collected heap that must be bigger than the size
    of the allocated objects. So if you start with an 8MB heap, you will always
    have at least 8MB allocated, no matter what objects you actually
    instantiate. See "Memory Issues" in the Forte System Management Guide.
    -tdc
    Tom Childers
    iPlanet Integration Server Engineering
    At 10:37 PM 6/11/01 +0200, [email protected] wrote:
    Hi all,
    I was wondering if anyone had any experience in deploying clients on NT
    concerning
    the memory use of these client apps.
    What is the influence of the various compiler options (optimum
    performance, memory use etc)?
    We seem to see a lot of the memory is taken by the Forte client apps (seen
    in the Task Manager
    of NT) in respect to the other native Window apps. For example an
    executable of approx 4Mb takes up to
    15Mb of memory. When I look at the objects retained in memory after
    garbage collection, these are about
    2Mb. Where do the other Mb's come from?

  • Trying to free up memory... maxmem? crackmem? shrink-a-os? which one?

    Hi there, new to the BB game so to speak. I currently have an 8310 with os 4.5.0.163 and loving the phone so far.
    I recently just installed BBM5 and I noticed that it chewed up a lot of my free memory. I currently have 20mb free after restart, about 17mb free after running. I do not have many apps installed either, just operna mini, poynt, mobile data alerter, google maps and BB app world.
    I did some searching on how to free up memory and have read all the DIY threads but do all the memory programs listed to the same thing??
    Is there anyone prefered over the other??
    I have tried using crackmem and maxmem, I recently stumbled onto shrink-a-os but was unable to find any reviews on them.
    bottom line is I guess.... which program is better to use?? or is it all the same **bleep** just different GUI?
    Thanx for everyones time

    Personally, I do the memory cleaning manually.
    Read this: http://www.blackberryforums.com/general-blackberry-discussion/116396-managing-your-bb-memory-lost-ca...
    And this: http://www.blackberryforums.com/general-blackberry-discussion/112029-losing-call-logs-sms-emails-opt...
    Additional links to read:
    http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB15345&sliceId=SAL_Pub...
    http://www.blackberry.com/btsc/search.do?cmd=displayKC&docType=kc&externalId=KB14320&sliceId=SAL_Pub...
    http://www.blackberry.com/btsc/dynamickc.do?externalId=KB14213&sliceId=SAL_Public&command=show&forwa...
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • SQL Plan Management (11.2.0.1)

    Hi Guys,
    I'm doing some testing as below.
    I tried to keep the SQL plan in baseline. (when the table has no index, as such performing full scan)
    However, after i create the index. It's not picking the original plan which i put it in baseline. It's using range scan.
    Can advise what have i done wrong?
    thanks!
    SQL> show parameter OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES;
    NAME TYPE VALUE
    optimizer_capture_sql_plan_baselines boolean FALSE
    SQL> CREATE TABLE spm_test_tab (
    2 id NUMBER,
    3 description VARCHAR2(50)
    4 );
    Table created.
    SQL>
    SQL> DECLARE
    2 TYPE t_tab IS TABLE OF spm_test_tab%ROWTYPE;
    3 l_tab t_tab := t_TAB();
    4 BEGIN
    5 FOR i IN 1 .. 10000 LOOP
    6 l_tab.extend;
    7 l_tab(l_tab.last).id := i;
    8 l_tab(l_tab.last).description := 'Description for ' || i;
    9 END LOOP;
    10
    11 FORALL i IN l_tab.first .. l_tab.last
    12 INSERT INTO spm_test_tab VALUES l_tab(i);
    13
    14 COMMIT;
    15 END;
    16 /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> EXEC DBMS_STATS.gather_table_stats(USER, 'SPM_TEST_TAB', cascade=>TRUE);
    PL/SQL procedure successfully completed.
    SQL> set linesize 2000
    SQL> set pagesize 2000
    SQL> SET AUTOTRACE TRACE
    SQL>
    SQL> SELECT description
    2 FROM spm_test_tab
    3 WHERE id = 99;
    Execution Plan
    Plan hash value: 3128910679
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 25 | 13 (0)| 00:00:01 |
    |* 1 | TABLE ACCESS FULL| SPM_TEST_TAB | 1 | 25 | 13 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - filter("ID"=99)
    Statistics
    26 recursive calls
    5 db block gets
    49 consistent gets
    0 physical reads
    944 redo size
    228 bytes sent via SQL*Net to client
    239 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    SQL>
    SQL> set autotrace off;
    SQL>
    SQL> SELECT sql_id, sql_text
    2 FROM v$sql
    3 WHERE sql_text LIKE '%spm_test_tab%'
    4 AND sql_text NOT LIKE '%dba_sql_plan_baselines%'
    5 AND sql_text NOT LIKE '%EXPLAIN%';
    SQL_ID SQL_TEXT
    gat6z1bc6nc2d SELECT description FROM spm_test_tab WHERE id = 99
    44b32kmh8ub2g DECLARE TYPE t_tab IS TABLE OF spm_test_tab%ROWTYPE; l_tab t_tab := t_TAB(); BEGIN
    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
    2 l_plans_loaded PLS_INTEGER;
    3 BEGIN
    4 l_plans_loaded := DBMS_SPM.load_plans_from_cursor_cache(
    5 sql_id => 'gat6z1bc6nc2d');
    6
    7 DBMS_OUTPUT.put_line('Plans Loaded: ' || l_plans_loaded);
    8 END;
    9 /
    Plans Loaded: 1
    PL/SQL procedure successfully completed.
    SQL> SELECT sql_handle, plan_name, enabled, accepted
    2 FROM dba_sql_plan_baselines
    3 WHERE sql_text LIKE '%spm_test_tab%'
    4 AND sql_text NOT LIKE '%dba_sql_plan_baselines%';
    SQL_HANDLE PLAN_NAME ENA ACC
    SYS_SQL_7b76323ad90440b9 SQL_PLAN_7qxjk7bch8h5tb65c37c8 YES YES
    SQL>
    SQL> ALTER SYSTEM FLUSH SHARED_POOL;
    System altered.
    SQL>
    SQL> CREATE INDEX spm_test_tab_idx ON spm_test_tab(id);
    Index created.
    SQL> EXEC DBMS_STATS.gather_table_stats(USER, 'SPM_TEST_TAB', cascade=>TRUE);
    PL/SQL procedure successfully completed.
    SQL>
    SQL> SET AUTOTRACE TRACE
    SQL>
    SQL> SELECT description
    2 FROM spm_test_tab
    3 WHERE id = 99;
    Execution Plan
    Plan hash value: 2792204123
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 25 | 2 (0)| 00:00:01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| SPM_TEST_TAB | 1 | 25 | 2 (0)| 00:00:01 |
    |* 2 | INDEX RANGE SCAN | SPM_TEST_TAB_IDX | 1 | | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    2 - access("ID"=99)
    Statistics
    1072 recursive calls
    3 db block gets
    192 consistent gets
    0 physical reads
    888 redo size
    242 bytes sent via SQL*Net to client
    239 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    18 sorts (memory)
    0 sorts (disk)
    1 rows processed
    SQL> set autotrace off;
    SQL> SELECT sql_handle, plan_name, enabled, accepted
    2 FROM dba_sql_plan_baselines
    3 ;
    SQL_HANDLE PLAN_NAME ENA ACC
    SYS_SQL_7b76323ad90440b9 SQL_PLAN_7qxjk7bch8h5tb65c37c8 YES YES

    Check the value of OPTIMIZER_USE_SQL_PLAN_BASELINES.
    Double check the sql id and exact matching signature of both statements .
    Turn autotrace off, execute statement then use:
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));to get the actual execution plan of the last executed statement in that session
    If in doubt, enable a SQL Plan Management trace:
    alter session set events 'trace[RDBMS.SQL_Plan_Management.*]';

  • Sql memory usage increase each time win app runs

    Hi,
    Sql memory usage increases each time when win app runs. Why does it work like this? Is it normal ?
    I restart SQL Server 2012. Only my win app uses SQL server.
    First run of winapp.
    start memory usage : 211.800 KB
    close memory usage: 528.136 KB
    Second run of xaf app.
    start memory usage : 528.136 KB
    close memory usage: 996.844 KB
    Third run of xaf app
    start memory usage : 996.844 KB
    close memory usage: 997.640 KB
    Fourth run of xaf app
    start memory usage : 997.640 KB
    close memory usage: 1.104.864 KB

    Hi,
    Sql memory usage increases each time when win app runs. Why does it work like this? Is it normal ?
    Yes, it is perfectly normal for SQL Server to acquire and hold onto large amounts of memory indefinitely.  This memory improves performance by avoiding disk I/O, query plan compilation and costly memory management. 
    On a dedicated SQL Server you should usually let SQL Server dynamically manage memory.  It will release memory if it detects memory pressure.  But if you often run other applications on the server than need significant amounts of memory (e.g. IIS,
    application services), you may want to set max server memory as suggested.
    Dan Guzman, SQL Server MVP, http://www.dbdelta.com

Maybe you are looking for

  • Milestone payment for stock material

    Hello, I use stock materials. These materials are purchased from vendors that we pay in milestones based on the progress of the production. How is the best way to solve this in SAP? Partial goods receipt is something that I do not want to use and tex

  • Disk you are attempting to use is full

    I am trying to download purchased movie to iTouch and it is saying it is full. This is impossible as the iTouch is showing 6GB of space on it and the movie is only 1GB. Is there an issue with determining space allocation on the iTouch? Why am I getti

  • Error while function calls

    ORA-02069: global_names parameter must be set to TRUE for this operation I am getting the following error when I am trying to invoke a user defined function through my sql statement .The function has been declared as DETERMINISTIC .

  • I,ve got a retail box CS6 design, it will not auto run or start set-upexe, help.

    I,ve got a retail box CS6 design, it will not auto run or start set-upexe, help.

  • Ranking of Consecutive non-increasing values in a column

    Hi friends I have a table with numbers like this in a column sr no.        value 1               17 2                0 3                0 4              38 5              32 6              24 7              12 8              51 9              42 10