PCTUsed - PCTFree

Hi,
I am using the below mentioned storage parameters for my tables, due to which oracle isn't able to use the free space after a delete. I can alter the value of PCTUSED but is there a way to remove the PCTUSED parameter from the table defination and let oracle manage it using alter table command so that i dont have to create the table again?
PCTFREE 10
PCTUSED 40
STORAGE(MINEXTENTS 1
MAXEXTENTS 1024
PCTINCREASE 0
BUFFER_POOL DEFAULT
Thanks
Rajat Thakran

exactly ASSM ignores pctfree and pctused while is MSSM it consider which is bydefault 10 and 40 percent respectively.Come what may if you just define pctfree and let the oracle use its own pctused it would be default 40 percent.
SQL> conn sys/sys as sysdba
Connected.
SQL> create tablespace myspace
  2   datafile 'c:\myfile.dbf' size 1G
  3  extent management local uniform size 100M
  4  /
Tablespace created.
SQL> conn scott/tiger
Connected.
SQL> drop table t
  2  /
Table dropped.
SQL> create table t (a number) tablespace myspace
  2  /
Table created.
SQL> conn sys/sys as sysdba
Connected.
SQL> select tablespace_name,status,contents,extent_management,segment_space_management
  2    from user_tablespaces
  3  /
TABLESPACE_NAME                STATUS    CONTENTS  EXTENT_MAN SEGMEN
SYSTEM                         ONLINE    PERMANENT LOCAL      MANUAL
UNDOTBS1                       ONLINE    UNDO      LOCAL      MANUAL
SYSAUX                         ONLINE    PERMANENT LOCAL      AUTO
TEMP                           ONLINE    TEMPORARY LOCAL      MANUAL
USERS                          ONLINE    PERMANENT LOCAL      AUTO
MYSPACE                        ONLINE    PERMANENT LOCAL      MANUAL
6 rows selected.
SQL>  select pct_free,pct_used
  2     from user_tables
  3    where table_name='T'
  4   /
  PCT_FREE   PCT_USED
        10         40
SQL> conn scott/tiger
Connected.
SQL> create table t1 (a number) pctfree 20 tablespace myspace
  2  /
Table created.
SQL> select pct_free,pct_used
  2    from user_tables
  3   where table_name='T1'
  4  /
  PCT_FREE   PCT_USED
        20         40
SQL> how you are identifying that oralce is not reusing that block which cross pctused defined percentage?
Khurram

Similar Messages

  • Select with no conditions taking long time, too many blocks, pctused?

    select * from at_journal;is taking 15 seconds, which is absurd. I have similar situations with other log tables in this system.
    (selecting with rownum < 5 and with first_rows hint still takes 15 seconds)
    Suspicious parameters:
    PCT_FREE 1
    PCT_USED 99
    (Some other log tables have PCT_FREE 5, PCTUSED 90)
    The tables have frequent inserts, once every day all records older than 90 days get deleted.
    After computing statistics:
    Blocks: 42,304 (seems absurdly high)
    Size: 663 Mb
    NUM_ROWS: 505,966
    After copying data without compression to new table:
    Blocks: 3,785
    Size: 60 Mb
    NUM_ROWS: 505,966
    The select on the new table is instantaneous.
    On a side note, in general is compression for a table with frequent deletes OK? It seems OK to me.
    Storage parameters of table creation script:
    PCTUSED    99
    PCTFREE    1
    INITRANS   1
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
                FREELISTS        1
                FREELIST GROUPS  1
                BUFFER_POOL      DEFAULT
    LOGGING
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    NOMONITORING;I imagine that most blocks for the table are empty. In my mind pctused of 99 means most of the block space should be full. I have read several explanations of PCTUSED/pctfree including oracle documentation and it seems pctused of 99 means the block should be 99% full.
    Much thanks,
    goo

    goo wrote:
    I imagine that most blocks for the table are empty. In my mind pctused of 99 means most of the block space should be full. I have read several explanations of PCTUSED/pctfree including oracle documentation and it seems pctused of 99 means the block should be 99% full.Hello, you don't give your database version, but if you were using Automatic Segment Space Management you would not need to worry about the PCTUSED setting, and it could be that you already are:
      1  select tablespace_name, segment_space_management
      2 from dba_TABLESPACES
    TABLESPACE_NAME                SEGMEN
    SYSTEM                         MANUAL
    SYSAUX                         AUTO
    UNDOTBS1                       MANUAL
    TEMP                           MANUAL
    USERS                          AUTO
    EXAMPLE                        AUTOAnd if you are already using ASSM, then the PCTUSED is not an issue (PCTFREE still applies, but it's not an issue in your case).
    goo wrote:
    On a side note, in general is compression for a table with frequent deletes OK? It seems OK to me.Frequent DELETEs could be an issue because they will not reset the High Watermark, though there will not be a performance penalty because of the compression for DELETEs (the record only needs to be located for a DELETE, not decompressed). Your PCTUSED, however, is high enough so that any newly deleted record slots should be quickly reused, but... it depends on how those new records are being INSERTed. If, as Daniel says, the HWM is being effectively bypassed (Direct Path INSERTs, etc.), then the table will grow in size every day, but the volume of records effectively stays just about the same.
    Have a look at how the new records are being added to that table, if it's a:
    INSERT /*+ APPEND */ INTO tableA
    SELECT...Then the HWM is being advanced, and the newly vacated slots from the DELETEd records are not being reused. So the table will continually grow, for roughly the same amount of data, and there'll be a proportionately longer data retrieval time.

  • Freelist and freelist groups

    Hi,
    I was reading about buffer busy waits (based on oracle 10g), and i came across two terms i was unfamiliar about... freelist and freelist groups . Can somebody explain the meaning of these two terms and how it is related to objects ?? I am more interested in single instance database and not about RAC..
    Is this relevant to current version of oracle database(11g) as well???
    Thanks in advance.

    Freelist is a part of the object and are maintained to define the candidate blocks which are available for the DMLs. The parameters PCTUSED, PCTFREE are going to be making the blocks go in and out of the freelist. Its a linked list whose starting point is the segment header block and that's what is the cause of the issue is what you have mentioned, buffer busy wait. Buffer busy wait is just a cummulative wait event and does have many of the reasons. What is going to be caused by the freelist is going to be the buffer busy wait for the segment header. Since the segment header is going to be pinned each and every time the scan for the free list is requested, its going to come under contention under a very heavy OLTP enviroment. That's why Oracle introduced, in 9i, ASSM which is Automatic Segment Space Management, a more optimized, bitmap based functionality , which removes the use of freelist altogether* . So even in 11g, the concept remains if you want to make the segment space management manual.
    I would not suggest you to read that link which you have quoted but would suggest to read this MOS note,
    MOS doc id 157250.1, "Freelist Management with Oracle 8i" by Stephan Haisley .
    I don't think freelist are explained anywhere better than what is there in the above document. Please note, you need to have valid CSI to login to MOS.
    HTH
    Aman....
    * ASSM is not really a very nice thing actually but that is another topic to discuss so let's leave it for the moment.

  • Calculating a record length of a table

    Hi All,
    In SAP 4.6C Oracle 9g I need to find a record length of a table.For that I am using :
    Table name is ABC.
    Tablespace in KBytes of ABC    X
    Total no records in ABC  Y
    Single record length in Kbytes (Z) =  Tablespace (X) / Total no of records(Y)
    I would like to know weather is this the correct way to calculate in approximation.I would also like to know any other methods of knowing it.
    Any inputs are appreciated.
    Thanks,
    Priya.

    Hello,
    >> I know that after major deletion frm db its necessary to do reorganization to enhance the db utilization.
    Not mandatory ... it depends on many factors...
    >> Pls help me to understand your statement that freed space isnt used by next entries.
    It maybe not used for the next inserts... that depends on your tablespace (if it uses the ASMM feature) and essentially on the following parameters
    - PCTUSED
    - PCTFREE
    Oracle Link: http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/logical.htm
    => The PCTFREE parameter sets the minimum percentage of a data block to be reserved as free space for possible updates to rows that already exist in that block
    => The PCTUSED parameter sets the minimum percentage of a block that can be used for row data plus overhead before new rows are added to the block. After a data block is filled to the limit determined by PCTFREE, Oracle Database considers the block unavailable for the insertion of new rows until the percentage of that block falls beneath the parameter PCTUSED. Until this value is achieved, Oracle Database uses the free space of the data block only for updates to rows already contained in the data block.
    Both parameters are used in a NON-ASSM tablespace and with an ASSM tablespace only PCTFREE is used.
    Regards
    Stefan

  • Creating table to hold 10 million records

    What should be the TABLESPACE,PCTUSED,PCTFREE,INITRANS, MAXTRANS, STORAGE details for creating a table to hold 10 million records.

    TABLESPACE,A tablespace big enough to hold 10 million rows. You may decide to have a separate tablespace for a big table, you may not.
    PCTUSEDAre these records likely to be deleted?
    PCTFREEAre these records likely to be updated?
    INITRANS, MAXTRANSHow many concurrent users are likely to be working with these records?
    STORAGE Do you want to override the default storage values of the tablespace you are using?
    In short, these questions can only be answered by somebody who understands your application i.e. you. The required values of these parameters has got little to do with the fact that the table has 10 million rows. You would need to answer these same questions for a table that held only ten thousand rows.
    Cheers, APC

  • Create table Physical attributes clause

    Guys,
    In my current project, I need to create the table (unfortunately, we recently lost the main DBA). I have been supplied a standard create table clause this people are using for transaction table :
    CREATE TABLE testtable
    CITY VARCHAR2(50),
    STATE VARCHAR2(2),
    ZIPCODE VARCHAR2(9),
    TABLESPACE space_DATA
    PCTUSED 0
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE (
    INITIAL 1M
    NEXT 1M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    BUFFER_POOL DEFAULT
    * I also need to create many Lookup kind of a table and need your help to find suggested values for: PCTUSED, pctfree, initrans, maxtrans, storage (initial, next, minextends, maxextends, pctincrease, buffer_pool) *
    Please let me know if I need to use the different values for the above suggested attributes for lookup table vs transaction table?
    Thank you soo much
    -Raj

    Hello,
    It depends on your Tablespace.
    If you use Dictionary Managed Tablespace (DMT), then you can use all these parameters.
    If you use Locally Managed Tablespace (LMT) without Automatic Segment Space Management (ASSM) then you
    may use the following parameters:
    PCTUSED 0
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE ( BUFFER_POOL DEFAULT )
    NB: PCTUSED = 0 is a very strange setting.
    If you use LMT with ASSM then you don't have to use the PCTUSED parameter (you still may use PCTFREE).
    About the BUFFER_POOL DEFAULT if you have just one Buffer it's not necessary the DEFAULT is always
    the default value.
    The BUFFER_POOL is useful when you have several Buffers (RECYCLE, KEEP and DEFAULT).
    Hope this help.
    Best regards,
    Edited by: Lubiez Jean-Valentin on Jan 28, 2010 8:29 PM

  • Tips for estimating database capacity estimate

    Hi there,
    Can anyone help me regarding estimating database capacity? How to set design storage space allocated for each table? I have read basic information regarding it from Oracle help and few forums but unable to understand how to do it? I want to generate a detailed design document stating Block size, PCTUSED, PCTFREE, PCTINCREASE etc. I also want to know how to decide capacity for a table with mulitiple inserts and deletes and for a table with multiple inserts, updates and deletes. How the Number of Users accessing database govern capacity?
    Anyone please help me in this.
    thanks,
    Archana

    Hello Justin,
    Thanks for the reply.
    Actually I have never worked on Database capacity design or estimates. I do not have much idea about it. My client has provided one design document template which demands for each table level capacity design. It contains following entries:
    BLOCK Size
    Bytes/row
    rows/BLOCK
    Initial No
    Max No
    PCTFREE
    PCTUSED
    IDX Expansion factor
    TableSpace
    Initial Size
    NextSize
    Max EXTENTS
    Partition
    Initial Capacity
    Max Capacity
    Max Physical Capacity
    IDX Initial Layer
    IDX Max Layer
    No of Fields
    IDX Initial Layer, IDX Max Layer in the above mentioned list I am not aware of. What is the difference between Max Capacity and Max Physical Capacity?
    I think While defining how the extents should increase number of users will come into picture. Is it correct?
    I do not understand whether to use locally managed tablespace or not?
    Could you please help me out in this?
    thanks,
    Archana

  • How can I set PCTUSED and PCTFREE in Warehouse databases?

    Hi,
    There are many Schemas in our database and some are used for OLTP and some others are used for Warehouse. Also our tablespaces are Local Managed.
    Could you help me please how can I set PCTUSED and PCTFREE for Warehouses and OLTP.
    What are your suggestions? What should be optimum?
    DB version is 9.2.0.8.
    thanks & regards

    If you are using locally managed tablespaces with ASSM then the pctused parameter would no longer apply. In all cases dictionary vs locally managed with or without ASSM you should set pctfree based on how much of the data row column values are present at initial row insertion and how likely any column is upated to a larger size after initial row insertion.
    In a warehouse I would expect most of the tables to have 100% of the row data present at initial insert and for the data to never be updated. For tables meeting this requirement a pctfree of 3 - 5% would likely be a good choice. I never like to use 0% since the day may come when you add another column to the table.
    With OLTP tables the ideal pctfree value varies more from table to table. Most table so seem to work well enought with the default 10% but I have seen tables that need 50% pctfree to prevent row migration since only the key column values existed at initial insert and most all the other column data was added later.
    Where ASSM is not in use I like to set pctused to 95 - pctfree. Over the last 15 years I am not sure I ever found a need to change the pctused from this once set. I have set a lot of tables up over the years from the old default of 40% to use 60% and 80% before resetting everything during a server platform migration as I mentioned above.
    HTH -- Mark D Powell --

  • Storage Parameter - PCTFREE & PCTUSED

    My question is regarding storage parameter PCTFREE and PCTUSED. I have little bit confusion to determine PCTUSED calculation.
    Suppose we set PCTFREE 20% and PCTUSED 50%. Initially, a block is empty, an INSERT fill free space 30% and after this UPDATE fill 20% reserved PCTFREE space.
    My question is, the block will be available for new INSERT.
    Thank

    asif.maqbool wrote:
    Thanks Aman for sending links. I read and understood. But I'd like to know the block availability. Do we consider filled PCTFREE space to calculate PCTUSED space?Are you sure that you read the link?
    The block's availability is based on the PCTUSED marker (only in the Manual Segment Space Management). PCTFREE is going to be a reserved space for the subsequent updates.
    This diagram should clear the concept.
    http://docs.oracle.com/cd/E11882_01/server.112/e25789/logical.htm#BABHHIDA
    My understanding is PCTUSED percentage only for new insert and the block is available until PCTUSED to reach specified percentage doesn't matter PCTFREE filled or not. A PCTFREE percentage is a separate space allocation in the block that we do not consider for PCTUSED space. If we set 20% PCTFREE and 50% PCTUSED so, we will use the over all 70% of a block space 20% for UPDATE and 50% for new INSERT.Wrong! Please read and re-read the given links.
    I'd appreciate if you or anyone to correct my concept if there is something wrong.Though its not going to be of much use right now as you are not clear with the basic concepts , this link should help in knowing the idea behind calculation required to set the parameters(only for MSSM) ,
    http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:733825532206
    Aman....

  • PCTFREE and PCTUSED

    hai !!!
    I want to improve insertion and retriving performance of a table !'
    * Could i achieve this by changing PCTFREE and PCTUSED values ?
    * If so, what values do i need to put ?
    - my table contains lakhs of records.
    - involves continuos insertion of records.
    - Updation is a rare.
    - iam using Oracle 10g, data_block_size=8kb, OS : windows-7
    * What about change in block size ?
    - Do i need to increase it ? or decrease it ?

    Not required to specify it if Segment Space Management is AUTO.
    Specifying Segment Space Management in Locally Managed Tablespaces
    When you create a locally managed tablespace using the CREATE TABLESPACE statement, the SEGMENT SPACE MANAGEMENT clause lets you specify how free and used space within a segment is to be managed. You can choose either manual or automatic segment-space management.
    MANUAL: Manual segment-space management uses free lists to manage free space within segments. Free lists are lists of data blocks that have space available for inserting rows. With this form of segment-space management, you must specify and tune the PCTUSED, FREELISTS, and FREELIST GROUPS storage parameters for schema objects created in the tablespace. MANUAL is the default.
    AUTO: Automatic segment-space management uses bitmaps to manage the free space within segments. The bitmap describes the status of each data block within a segment with respect to the amount of space in the block available for inserting rows. As more or less space becomes available in a data block, its new state is reflected in the bitmap. These bitmaps allow the database to manage free space automatically.
    You can specify automatic segment-space management only for permanent, locally managed tablespaces. Automatic segment-space management is a simpler and more efficient way of managing space within a segment. It completely eliminates any need to specify and tune the PCTUSED, FREELISTS, and FREELIST GROUPS storage parameters for schema objects created in the tablespace. If you specify these attributes, the database ignores them.
    can i set PCTFREE and PCTUSED in LMT
    http://docs.oracle.com/cd/B12037_01/server.101/b10739/tspaces.htm
    Thanks
    Kuljeet Pal Singh

  • (PCTFREE, PCTUSED) and Storage parameters

    HI,
    I am confused about (PCTFREE, PCTUSED) and Storage parameters(initial, next, pctincrease etc.)
    As far as i have read PCTFREE and PCTUSED are used to control free and used space in a datablock and also these parameters related to Manual segment space management in Locally managed tablespace(i.e we need to manually set and tune these parameters). Whether these parameter are used in Dictionary managed tablespace or not?
    Also, Storage parameters(intital, next, PCTUSED etc) are used in Dictionary managed tablespace. But in locally managed tablespaces how they are set as i have read we need not set these in locally managed tablespaces.
    So, can you explain me about differences of these parameters with regard to Locally and Dictionary managed tablespaces in Oracle 9i and 10g platform on RHEL.

    Hi,
    Locally Managed Tablespace :-
    A tablespace that can manage extent allocation by itself is called locally managed tablespace.
    Using the bitmap in each datafile to keep track of the freed or used status of blocks in that datafile.
    Each bit in the bitmap corresponds to a block or a group of blocks.
    When an extent is allocated or freed for reuse, Oracle changes the bitmap values to show the new status of the blocks.
    These changes do not generate rollback information because they do not update tables in the data dictionary.
    Now remember, storage parameters
    NEXT,
    PCTINCREASE,
    MINEXTENTS,
    MAXEXTENTS, and
    DEFAULT STORAGE are not valid for extents that are managed locally
    Extents allocated in LMT :-
    LMT have extent sizes either UNIFORM or variable extent sizes
    For UNIFORM extents you can specify an extent size. The default size is 1MB.
    and for AUTOALLOCATE extents you can specify the size of the initial extent and Oracle determines the optimal size of the additional extents, with a minimum extent size of 64KB
    Example :-
    Extent of uniform size
    CREATE TABLESPACE test
    DATAFILE 'tet.dbf'
    EXTENT MANAGEMENT LOCAL
    UNIFORM SIZE 256K;
    Specifying Segment Space Management in Locally Managed Tablespaces
    When you create a locally managed tablespace using the CREATE TABLESPACE statement, the SEGMENT SPACE MANAGEMENT clause allows you to specify how free and used space within a segment is to be managed.
    MANUAL (MSSM) :- refers to oracle use free lists for managing free space within segments
    because of the need to specify and tune the PCTUSED, FREELISTS, and FREELISTS GROUPS storage parameters for schema objects created in the tablespace
    AUTO :-
    Oracle use bitmaps to manage the free space within segments- automatic segment-space management
    (ASSM)
    Example :-
    CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL - LMT
    SEGMENT SPACE MANAGEMENT AUTO; - ASSM
    - DMT :-
    Example :-
    CREATE TABLESPACE tbsb
    DATAFILE '/u02/oracle/data/tbsa01.dbf' SIZE 50M
    EXTENT MANAGEMENT DICTIONARY -- specified how to manag the extent in DB
    DEFAULT STORAGE (
    INITIAL 50K
    NEXT 50K
    MINEXTENTS 2
    MAXEXTENTS 50
    PCTINCREASE 0); -- you have specified how extents in memory should increase
    In the above example you have created dmt and specified the storage parameter for Extents, that is
    how they much allocated as data get inserted in to the segments(tables)     .
    refer : http://www.mpi-inf.mpg.de/departments/d5/teaching/ss05/is05/oracle/server.920/a96521/tspaces.htm#636
    - Pavan Kumar N
    Oracle 9i/10g - OCP
    http://oracleinternals.blogspot.com/

  • Plz guide me on the formula of PCTUSED

    Hi
    I read in a blog to find out blocks available for insert are
    Blocks with total filled volume < (BLOCKSIZE – overhead – (blocksize*(1-(PCTFREE/100)))
    In the above formula I am unable to understand the meaning of
    blocksize*(1-(PCTFREE/100))
    Please explain.
    Thanks

    The documentation nicely explains PCTFREE and PCTUSED.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/logical.htm#sthref344
    The author performs some calculations to conceptually show how to understand if a block is available for inserts or not.

  • Pctfree=0-table high free blockspace ratio?

    I have been looking at Metalink and Asktom but could not find what I was looking for so perhaps one of you can help me.
    I have a table that seems to keep on growing when no data is added.
    Details:
    - db block size = 8k
    - only deletes and inserts are done on this table (mimicing updates)
    - pctfree=0 and pctused=99.
    - inserted 972057 records
    - avg row size is 147 bytes
    - total data size 142725354 bytes (using vsize on all columns/records)
    - initially, after the insert, I have 171966464 bytes reserved (user_segments)
    - the difference between the two expressed over the actual data size is 0.2 (for each byte I insert 0.2 of a byte is reserved as extra empty space/overhead).
    Now I've created a procedure (test environment) that randomly(!) copies a record in a temporary table, deletes the original and then inserts the record from the temporary table into the base table again. During this operation, only the primary gets changed (sequence/trigger). In theory this should not make the table increase other than for storing the potentially bigger primary key (and thus storing the whole row in a different block).
    After 1.36 mln of these deletes/inserts, the primary key has doubled in size (user_segments) and the table has increased 60%.
    If i do 80000 more deletes/inserts, the primary key stays stable, but the table seems to keep increasing in size.
    After more than 1.44 mln deletes/inserts, the ratio is almost at 0.7 and it doesn't seem to get stable (let alone decline).
    My questions:
    1) why does Oracle need so much extra space? Surely a 0.3 or 0.4 should be way enough in this case?
    2) when does this end?
    Thanx for any assistance/references you can give me.
    Lennert

    yes. Average is 147 bytes. However, the record that gets deleted and inserted is identical with the exception of the PK (that is replaced by a number from a sequence).

  • Capacity planning for DB, pctfree pctuser

    What is segment, pctfree, pctused ? want to clear my concepts...
    Secondly how we can do capacity planning for Database growth?

    The simplest and most accurate approach is
    - Create the schema
    - Load it with a representative amount of data (i.e. 1-2% of the expected data volume)
    - Measure the amount of disk required
    - Multiply by an appropriate factor to determine the eventual size
    You can also do back of the envelope calculations, taking the average row size of your larger tables, multiplying by the expected number of rows, then adding an appropriate multiplier. Probably in the neighborhood of 2 to account for indexes, empty space in the table, etc., but this is very application specific.
    Justin

  • Blocks have much more free space specified by pctfree moved off freelist.

    We have a table with pctfree=0 and pctused=90 and experienced high session against it. During the high session, we saw lots of "read by other session", cbc chain, and "buffer busy wait" caused by the same sql (INESRT). The row size of of an average 4K with long raw. After got the block info for the "read by other session" and "buffer busy wait", I dumped the block. The strange thing is that all the of blocks dumped are not in the freelist and the available free space is over 1K.
    My idea is: When the session named waiting_a experienced "read by other session" to find the block to insert data, that block must be in the freelist, otherwise the waiting_a wouldn't try to read it in buffer and wouldn't be waiting for it to be ready. Very shortly other session reading_b which was reading the block put the data in buffer and did the insert operation, and the reading_b completed its work of insert. My dump should be after reading_b completed. So the dumped block should contain the data inserted by reading_b. After that the block was got off from freelist.
    But why blocks with 0x520 (1312)and 0x104c (4172) freespace got off from freelist? As pctuse is 90, a block will be got off from freelist when free space is less than 10% of the block size, and these two blocks have much more freespace.
    TEST-prod-test$> grep tosp TEST_ora_23095.trc
    tosp=0x2a2
    tosp=0x104c
    tosp=0x520
    TEST-prod-TEST$> grep avsp TEST_ora_23095.trc
    avsp=0x2a2
    avsp=0x104c
    avsp=0x520
    TEST-prod-test$> grep flg TEST_ora_23095.trc
    scn: 0x0328.47520b02 seq: 0x02 flg: 0x04 tail: 0x0b020602
    seg/obj: 0x14e05  csc: 0x328.47520b02  itc: 1  flg: -  typ: 1 - DATA
    scn: 0x0328.47520f41 seq: 0x02 flg: 0x04 tail: 0x0f410602
    seg/obj: 0x14e11  csc: 0x328.47520f41  itc: 1  flg: -  typ: 1 - DATA
    scn: 0x0328.4752153a seq: 0x02 flg: 0x04 tail: 0x153a0602
    seg/obj: 0x14e0d  csc: 0x328.4752153a  itc: 1  flg: -  typ: 1 - DATA

    knowing Oracle specifically warns against using multiple blocksizes
    Nope.  Oracle does not warn against using multiple blocksizes, anywhere in the documentation.
    The only warnings I've seen (By Daniel Morgan, and unverified) claims that Oracle was negligent and only tested the SQL optimizer with an 8k blocksize.
    I'm not sure that this is true, since it would constitute misfeasance.
    I know that Oracle does extensive tesing on their new features, and the docs offer the multiple blocksize feature without reservation.
    Uisng multiple blocksizes is a well established, proven concept.
    DBA's have been using them for decades with IMS, IDMS and DB2 before Oracle came along.
    I first saw multiple blocksized used with great success in the 1980's, and they are still in use today on many large databases.
    provide a measurable idea what 'lots' constitute, and how much I/O is reduced in the shops you saw?There is load of verifiable evidence out there:
    http://www.google.com/search?&q=site%3Awww.tpc.org+db_16k_cache_size
    This UNISYS Oracle benchmark used multiple blocksizes to achieve optimal performance
    db_cache_size = 4000M
    db_recycle_cache_size = 500M
    db_8k_cache_size = 200M
    db_16k_cache_size = 4056M
    db_2k_cache_size = 35430M
    http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP100883
    The IBM Oracle Technical Brief titled "Oracle Architecture and Tuning on AIX" (November 2006) notes that careful evaluation is required before implementing multiple blocksizes:
    While most customers only use the default database block size, it is possible to use up to 5 different database block sizes for different objects within the same database.
    Having multiple database block sizes adds administrative complexity and (if poorly designed and implemented) can have adverse performance consequences. Therefore, using multiple block sizes should only be done after careful planning and performance evaluation.
    https://metalink.oracle.com/metalink/plsql/f?p=130:14:4123909781200375285::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,46757.1,1,1,1,helvetica
    Metalink Note:46757.1 titled "Notes on Choosing an Optimal DB BLOCK SIZE" says that there are some benefits from having larger blocksizes

Maybe you are looking for

  • Failed formatting of new hard drive

    I installed a new Caviar SE 120Gbyte SATA II hard drive in my PowerMacG5. This will serve as a back-up to the start-up HD. When I started up the computer, it was not recognized. I used the "erase" and "partition" options in disk utility to no avail (

  • PHP Connection to a MySQL database "An unidentified err has occurred"

    This is driving me up the wall.... With my hosting provider at work I cannot make a connection to a MySQL database with dreamweaver using the new connection in the databases tab. "an unidentified error has occurred" I am certain that I am entering th

  • Looking up EJBs from a java client

    While trying to migrate my application from standalone-oc4j to Oracle Application Server 10g, I ran into the following problem. My application has a stateless session bean. When trying to lookup the bean (from a java client), I get the following exce

  • Online database software updates with Script or C# Code

    Hi, I want an updated online to get the correct software My application has a database with 35 tables What if 40 fields were added to the database and update the database so customers online?

  • Port protected on trunk ports

    I have a router to a 3550 switch feeding in a star toplogy one 2950 off each port.  I have port protprected on the ports of each of the 2950s.  The question is can I do port protected on all my trunk ports except the uplink port on the 3550?  I am wa