Flushing the shared Pool
DBAsupport.com Forums - Powered by vBulletin
Results 1 to 5 of 5

Thread: Flushing the shared Pool

  1. #1
    Join Date
    Feb 2001
    Posts
    66
    Hi All
    I was been told that flushing the shared pool is dangerous because this can put sessions in inconsistent state. A user who had not commit his transaction will get lost his data. Is this true? I mean if in the shared pool are only reutilisable data why should my transaction be there?


  2. #2
    Join Date
    May 2002
    Posts
    2,645
    What does the log writer do? When you commit, are data blocks with changes immediately written to? What does "flush" mean? Answer those, and you'll have a better idea about the question you are asking.

  3. #3
    Join Date
    Feb 2001
    Posts
    66
    The Logwriter write the redo log buffer on disk. The flush shared_pool will free data from shared pool. So because log_buffer is not in the shared_pool, there is no danger? True?

  4. #4
    Join Date
    May 2002
    Posts
    2,645
    http://otn.oracle.com/docs/products/...memor.htm#8999

    Also,

    Flushing the SHARED POOL
    On systems which use a lot of literal SQL the shared pool is likely to fragment over time such that the degree of concurrency which can be achieved diminishes. Flushing the shared pool will often restore performance for a while as it can cause many small chunks of memory to be coalesced. After the flush there is likely to be an interim spike in performance as the act of flushing may remove sharable SQL from the shared pool but does nothing to improve shared pool fragmentation. The command to flush the shared pool is:
    ALTER SYSTEM FLUSH SHARED_POOL;

    Contrary to reports elsewhere items kept in the shared pool using DBMS_SHARED_POOL.KEEP will NOT be flushed by this command. Any items (objects or SQL) actually pinned by sessions at the time of the flush will also be left in place.
    NB: Flushing the shared pool will flush any cached sequences potentially leaving gaps in the sequence range. DBMS_SHARED_POOL.KEEP('sequence_name','Q') can be used to KEEP sequences preventing such gaps.



    [Edited by stecal on 10-21-2002 at 12:47 PM]

  5. #5
    Join Date
    Dec 2000
    Location
    Ljubljana, Slovenia
    Posts
    4,439
    If you were told that flushing the shared pool should be avoided because of wasting all the data allready cached (and hence having impact on performance after the flush), then you have been told the truth.

    If you were told that flushing the shared pool should be avoided because "this can put sessions in inconsistent state", then you have been told rubish!

    Flushing the shared pool is by all means the process one should avoid executing regulary, but it is by no means dangerous to execute it whene there are reasons for that.
    Jurij Modic
    ASCII a stupid question, get a stupid ANSI
    24 hours in a day .... 24 beer in a case .... coincidence?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width