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,
googoo 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. -
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
-RajHello,
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,
ArchanaHello 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 & regardsIf 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.
Thankasif.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.... -
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.
ThanksThe 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.
Lennertyes. 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 - DATAknowing 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?
-
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