Rollback Segments' size
Date: Fri, 02 Jul 1999 07:59:03 +0500
From: S V MANSATA kunal@blr.vsnl.net.in
To: oraapps-dba@cpa.qc.ca
Subject: why do rollback segments need to be of the same size
hi all
i would like to know what happens if rollback segments are not of the same
size, how would this affect performance, what has optimal got to do with
the size of rollback segments. what exactly is mirroring and multiplexing
my understanding is as follows
by just having two or more members in a log group it is multiplexing and by
having those members on different disks it is mirroring
any help ..
thanks in advance
promeet s mansata
Date: Fri, 2 Jul 1999 11:31:47 +0100
From: Philip West Philip.West@exco.co.uk
Subject: RE: why do rollback segments need to be of the same size
You have two questions here it seems: Rollback and Redo.
I would suggest that you get a book to read up on the why of everything.
The DBA handbook from Oracle Press is a good start.
anyway, my own immediate thoughts (open to criticism/ciomment) are:
Rollback.
The rollback tablespace should hold nothing but rollback segments.
To prevent fragmentation (as rollback segments extent and then contract back
to optimal) size all rollback segments with the same initial and next extent
size.
Next prevent the database from automatically coalescing freespace in the
tablespace by setting its pctincrease to zero. This will aid database
performance. Over time you will end up with a tablespace full of uniformly
sized chunks ready for any segment into extend into.
It is best to size rollback extents so that most single database
transactions can fit into a single extent.
Have min_extents set to allow larger transactions to complete without
forcing the segment to dynamically extend or risk 'snapshot too old' errors.
Also allow that more than one transaction will use a segment.
Have enough segments so that you limit the number of transactions in any
segment.
Ideally have enough segments so that only one transaction will use any one
segment at a time.
Have enough 'slack' space in the tablespace so that rollback segments can
extend beyond there minextents if necessary.
Set optimal so that they can shrink back - otherwise over time all your
segments will grow and you either have to allocate a massive tablespace
(waste of space) or run out of space at the end of a large transaction (a
bit annoying)
Lastly if you do have regular VERY BIG transactions, and access to the code,
create a separate rollback tablespace and put a BIG rollback segment in it;
then use the 'set transaction use rollback segment' command in the code. If
you dont have this luxury then you need to size your 'normal' rollback
tablespace accordingly.
These statements may seem a bit contradictory but DBA'ing is an art form and
not a science.
Set up your rollback at a best guess and then view v$waitstat and v$rollstat
to guage contention.
A typical small database (say 50 concurrent users) may have 10 rollback
segments, 4Mb extent size and minextents of 10. As I said this is not cast
in bronze and another dba might come along and decide to change this to 8
segments, 2Mb extents and minextents of 12. You have to use your judgement,
the perfomance tables and the space available and then give it your best
shot.
Redo logs:
Redo logs are critical to the recovery of the database. No redo logs - no
recovery from failure. Of course archive redo is what is really needed -
otherwise you are only likely to be able to recover to your last full cold
backup should recovery be necessary.
Because redo logs are critical we want to keep copies of them. This can be
done in two ways:
Oracle allows you to multplex redo using log groups as you rightly said. If
you implement this make sure that you split the groups across physical
devices for redundancy otherwise the exercise is pointless.
You can use redundancy at o/s level by implementing raid technology. As
redo logs are written to linearly it is best to have them on flat or striped
disks rather than raid3 or raid5 where data is distributed in a fairly
random way across a disk set. So if you are on a single disk (or stripe)
and then mirror that disk/stripe you have added another level of redundancy.
I always use both groups and mirroring.
Finally - if you possibly can - always put redo logs on there own disks to
prevent i/o contention.
Best Regards
Phil West - Oracle Financials DBA
Telephone: 44 171 9509385
E-mail: philip.west@exco.co.uk
Index next_extent size
Date: Fri, 2 Jul 1999 13:15:29 -0500
From: Bharat Patel bpatel@DOMINOAMJET.com
To: "'OraApps-DBA@cpa.qc.ca'" OraApps-DBA@cpa.qc.ca
Subject: index next_extent size
Hi, Guys I have question regarding indexes.
We are using oracle apps version 11.02 with 8.0.4.2.1 and my below indexes
have the pct_increase 100.
I would like to know it is right for these indexes or something wrong about
it.
As of now one of the indexes it already hit 80MB next_extents .
The owner of these index is APPLSYS.
WF_ITEM_ACTIVITY_STATUSES_PK
WF_ITEM_ACTIVITY_STATUSES_N1
WF_ITEM_ATTRIBUTE_VALUES_PK
I talked to oracle regarding it and they told me that it is business issue.
Any idea?
thanks.
Bharat Patel
D.B.A.
bpatel@dominoamjet.com
847-244-2501 ex 1249
Date: Fri, 2 Jul 1999 14:42:30 -0400
From: cwroblewski@orioncapital.com
Subject: Re: index next_extent size
Alter the Pctincrease setting to = 0 and extents will stay consistent.
Date: Fri, 2 Jul 1999 14:03:09 -0500
From: Bharat Patel bpatel@DOMINOAMJET.com
Subject: RE: index next_extent size
I would like to know the reason why it's pctincrease 100 before doing
anything?
Are you using the same version of apps?
thanks.
Bharat Patel
Date: Fri, 2 Jul 1999 15:02:54 -0400
From: "Venkatayogi, Swami" SVenkatayogi@comintertech.com
Subject: RE: index next_extent size
I would not like to have a non zero pctincrease for any segment in the
database because that leads to a lot fragmentation and unequal
extents within that segment.Keep the initial and next extents multiples of
64k and pctincrease 0 .In our case these indexes have pctincrease 0.
I was wondering if there are any other implications involved.
/swamy venkatayogi
Date: Fri, 2 Jul 1999 14:33:02 -0500
From: Bharat Patel bpatel@DOMINOAMJET.com
Subject: RE: index next_extent size
are you on 11.02 with 8.0.4.2.1?
thanks.
Bharat Patel
Date: Tue, 6 Jul 1999 08:09:14 -0400
From: "Venkatayogi, Swami" SVenkatayogi@comintertech.com
Subject: RE: index next_extent size
No. We are on 10.7NCA on 7.3.4.4 .But does it really matter on which version
we are on because I thought that the index segments should be same at the
database level.
Correct me if I am wrong.
Thanks.
./swamy
Date: Tue, 6 Jul 1999 13:10:50 -0400
From: Margaret Murray mmurray@delorme.com
Subject: RE: index next_extent size
Bharat,
I agree that you should set the pctincrease to 0 so that all extents are
sized equally. In this case, I think oracle set the pctincrease to 100
because these particular tables/indexes grow at a very fast rate - our table
is 6.3 million rows for 10 months of data at R11. It's simpler from Oracle's
perspective to have it grab 100% bigger chunk each time it extends that have
it have it take smaller chunks and run out of extents. This particular
module (Workflow) is different in most respects that all other modules so I
surmise a different development team worked on the creation (hence, the use
of pctincrease 100, and sometimes 50, instead of the usual 0 that most other
modules use).
As a side note, we're working on purging this table. In the Oracle Workflow
guide (on page 7-42) some API's are described. We've been told by support
to apply (for Solaris) patch 897214 to allow a purge routine to be run from
the concurrent manager; we're in the process of applying and testing that
patch. Also found in our tar: "Ct has another option to run specific
scripts for deletion of specific WF items. All pertinent scripts are listed
on pages 11-2 through 11-8 of the Oracle Workflow Guide Release
2.0.3(A56104). One script will delete all: on page 11-5 of the manual the
Wfrmall.sql will delete ALL workflow definitions, but there is a warning
associated with it that needs to be heeded." I'd really love a TRM
(Technical Reference Manual) for Workflow, so far no joy from doc sales.
Sigh, maybe someday...
HTH,
Margaret Murray, DBA
DeLorme Mapping
Explain plan and index access
Date: Wed, 7 Jul 1999 16:36:02 +0700
From: Arief Dharmawan arief@federal.co.id
To: oraapps-dba@cpa.qc.ca
Subject: index access
Hi all,
I've used explain plan for a statement like this :
EXPLAIN PLAN
SET STATEMENT_ID = 'AD 2'
FOR
select dtls_ds_code, txn_price from gsppc_gl00_txnswhs
where subl_part_partnum = '01-10-003';
and I have the result like this :
SQL> SELECT OPERATION, OPTIONS
2 FROM PLAN_TABLE
3 WHERE STATEMENT_ID = 'AD 2';
SELECT STATEMENT
TABLE ACCESS FULL
But the field (subl_part_partnum) is a foreign key, and I look up in
dba_indexes with this result :
SQL> select index_name, table_name, column_name from dba_ind_columns
2 where column_name = 'SUBL_PART_PARTNUM';
TSWH_SUBL_FK_I ------ GSPPC_GL00_TXNSWHS
SUBL_PART_PARTNUM
I have checked the status of TSWH_SUBL_FK_I in dba_indexes and it's valid.
Why the result of explain plan is FULL scan table ?
I think It's supposed to be RANGE SCAN (for the index) and ROWID (for the
row).
Regards,
Arief Dharmawan
Date: Thu, 8 Jul 1999 08:48:28 +1200
From: Erica Harris EricaH@wairc.govt.nz
Subject: RE: index access
A few things to consider:
1. How many rows in the table versus how many rows where
subl_part_partnum='01-10-003'?
2. Is the distribution of values in subl_part_partnum skewed? If it is,
then you should be collecting histogram statistics for that column.
3. Are you collecting statistics for the table and that index? For big
tables we do 'estimate statistics sample 20 percent'. We also compute
the statistics for indexes.
Hope this helps.
Regards,
Erica
Date: Wed, 7 Jul 1999 13:50:38 -0700
From: "Chalmers, Jeff" Jeff.Chalmers@bactc.com
Subject: RE: index access
Arief,
Check the order of the fields in the index. If the
subl_part_partnum field is not the first field in the index, then the index
will not be used.
Jeff
Date: Thu, 08 Jul 1999 13:02:37 +0000
From: Dave Morgan dave.morgan@calgary.qcdata.com
Subject: Re:index
Hi Arief,
Is SUBL_PART_PARTNUM the first column in the index? If it is not,
Oracle cannot use the index.
HTH
Dave
Mrp_gross_requirements
Date: Thu, 8 Jul 1999 16:40:57 +0200
From: "Worthington, S." S.Worthington@ahpg.com
To: "'oraapps-dba@cpa.qc.ca'" oraapps-dba@cpa.qc.ca
Subject: mrp_gross_requirements
We're having problems getting our MRP jobs to finish before the users start
logging on. It looks like it might be possible to truncate
mrp_gross_requirements before the run, rather than having it delete 1.3
million rows with a 100,000 row loop. Is this possible, or is there
anything else we can try?
I've only just started looking at this, and I don't want to reinvent too
many wheels, so any suggestions welcome. We're on Apps 11.0.2
Thanks, Stu
stuartw@email.com
Memory Estimate needed by non-local user
Date: Thu, 08 Jul 1999 10:57:58 -0400
From: "Michael Porter" MPorter@pgahq.com
To: ORAapps-dba@cpa.qc.ca, oracle@telelists.com, oracledba@theMailingList.net
Subject: Second/Last Try. Memory Estimate Question
I didn't receive one response so I will try one more time to see if anyone
can help me on this...
Where is the amount of ESTIMATED memory needed by each non-local user that
connects via SQL*net that needs to be accounted for in the shared pool
discussed? I know I have seen this somewhere before but, it has escaped
me...
Also, where is it covered that show when database connections are viewed
via OEM 1.6.x (or V$session for that matter) their properties are
explained (e.g. dll's or forms being pointed to)? I seem to have many
connections for each client and some are of the same exact content it
appears...
Oracle 7.3.4.4 / AIX 4.2.1
Thanks
Mike
Date: Thu, 08 Jul 1999 12:23:10 -0400
From: Thomas Jones-Low tjoneslo@softstart.com
To: oraapps-dba@cpa.qc.ca
Subject: Re: Second/Last Try. Memory Estimate Question
Michael,
Check the Oracle7 Installation guide for your platform. It was probably
the only hardcopy document sent with the CD's.
Oracle 7 server requires 8464KB + 297KB per user
and SQL*Plus requires 1931KB + 103 KB per user
I'm not sure what you mean for the 2nd part. OracleRBDMS won't know
anything about what the client is doing or how it is doing it, only that
it wants some data. Perhaps if we knew why you needed this?
Thomas Jones-Low JobScheduler for Oracle
tjoneslo@softstart.com
Ph: 802-652-1596 http://www.softstart.com
log_file parameter in Init.ora
Date: Wed, 14 Jul 1999 09:08:37 -0500
From: Bharat Patel bpatel@DOMINOAMJET.com
Subject: log_file parameter in Init.ora
Hi, Guys I am looking for a guidance for tuning the system.
I am trying to reduce the used space in SGA.
The default value of log_files is 255 which occupied lot of space in SGA by
File Descriptors.
Is it beneficial to reduce this number little higher then the number of log
files I have?
thanks.
Bharat Patel
D.B.A.
bpatel@dominoamjet.com
847-244-2501 ex 1249
Date: Wed, 14 Jul 1999 18:57:12 +0400
From: mzaveri@eppco.co.ae
Subject: Re: log_file parameter in Init.ora
Hello,
I agree with you. This should really help to free up sga.
Mehul.
Oracle DBA
EPPCO-DUBAI
Unable to extend index
Date: Mon, 12 Jul 1999 11:03:07 +0300
From: mohammed alshaarawi m_sharawy@tccbce.com
To: "'Ora App'" oraapps-l@cpa.qc.ca
Subject: UNABLE TO EXTEND
hi
I ahve the follwoing error
oracle error-1654:ORA-01654:unable to extend index APPLSYS.FND_LOGINS_U1
by 16 in tablespace FND_X has been detected in FND_SIGNON.AUDIT_USER
thanx
Date: Mon, 12 Jul 1999 08:48:33 -0400
From: "Jim Gehl" JGehl@smtp-gw.lsuc2.lsuc.on.ca
To: oraapps-l@cpa.qc.ca
Subject: Re: UNABLE TO EXTEND
You have to increase your FND_X tablespace.
Jim Gehl
Database Administrator
The Law Society of Upper Canada
Barreau du Haut-Canada
(416) 947-4045
jgehl@lsuc.on.ca
Managing Extents
Date: Tue, 10 Aug 1999 16:12:00 -0300
From: Jeff Preston Jeff.Preston@moncton.org
Subject: DBA: Managing Extents
I've been reading some conflicting ideas about extents, some people say to
try and keep
your number of extents as small as possible, ideally 1 extent per segment.
But in the Advanced Oracle Tuning and Administration, Oracle Press, book it
says
Having a single extent may make an object simple to manage, however
forcing each object in your
database to have just one extent will yield little in the way of
performance improvements, and may
actually hurt performance.
I was wondering what everyone else thought on this topic,
Date: Wed, 11 Aug 1999 20:28:53 MYT-8
From: philip@aleytys.pc.my
To: Jeff Preston Jeff.Preston@moncton.org, oraapps-l@cpa.qc.ca
Subject: Re: DBA: Managing Extents
Back in the Oracle 6 days and before, having too many extents (probably)
did have an impact because of fragmentation and extra dictionary lookups.
However Thomas Kyte (of Oracle Corp) and others recently did some
testing on Oracle 7 and 8 platforms and found that even with several
thousand extents performance degradation was mimimal.
On the other hand I still tend to feel uneasy when there are too many
extents per segment (old habits die hard).
Philip
Date: Wed, 11 Aug 1999 13:07:06 -0400
From: "Dawn M. Duvall" dduvall@mitretek.org
Subject: Re: DBA: Managing Extents
Jeff,
My experience is that this is no longer quite the issue it once was, but
I have experienced dramatic improvement in performance by defragmenting
database objects; particularly indexes.
Dawn
Date: Thu, 12 Aug 1999 17:48:28 -0400
From: "Mark W. Farnham" mwf@rsiz.com
Subject: RE: Managing Extents
Many very small extents will almost always hurt performance. A small extent
is an extent smaller than the multiblock read size, usually 64K. A larger
hurdle for "small" may be the case if your disk farm has a minimum read
size such that even though Oracle would need to go back to the device
multiple times, the device would have cached, let's say 512K, so you get
contiguous reads almost for free. In that case, if the segment is at least
512K in size you probably don't want to have any extent smaller than 512K.
If you have so many extents in your system that the time to scan the list
in memory and read uet$ becomes significant, that will hurt performance.
This is unlikely.
For rollback segments, somewhere in the range of 20 to 40 preallocated
equal extents per rollback segment sized to handle all normal transactions
(making allowance in head room for outliers of extremely large single
commit point transactions) is usually results in optimal throughput.
If insisting on a single extent on JBOD (just a bunch of disks) prevents
you from putting multiple disks in play to service the i/o needs of a large
segment, that will hurt performance.
Other than reducing rollback segment extents below the useful threshold or
preventing JBOD striping, there is probably not a down side to rebuilding
to single extents. It is just that it may be a waste of time. The side
effects of rebuilding, especially in eliminating skewing and thereby
reducing the depth of indexes with monotonically increasing keys,
elimination of migrated rows, and filling in deletion space with rows so
that the data is denser per block far outweighs any improvements due to
reducing extents.
A high number of extents often points an accusing finger at segments that
have other space management problems of significance, so rebuilding high
extent count segments often does result in better performance because of
the side effects.
However, checking for the aforementioned problems in all segments, even
those with a single extent, is the better way to get a handle on what may
need to be rebuilt.
Mark
Maximum Extents - Query 3
Date: Wed, 11 Aug 1999 19:26:33 -0400
From: fushan@gamma.aei.ca
Subject: DBA: max extents
Hi DBAs
Database with version 7.3.4.3 database in Unix Digial machine.
The block size for my database is 8K. According to Oracle, the
max extent of objects (tables, indexes ) for 8K block size database
should be 505. Recently one of my objects has 600 extends. Did
I misunderstand the 505?? any help
Fu-shan Louisa Leong
Oracle DBA, Oracle Financial Application
Andersen Consulting
Date: Wed, 11 Aug 1999 19:34:46 -0400 (EDT)
From: "'Mike Grierson'" mcg@his.com
Subject: Re: DBA: max extents
Oracle said that? I thought the default for that tablespace would have
picked that number....
Mike
Mike Grierson
mcg@his.com
http://www.his.com/~mcg
Date: Wed, 11 Aug 1999 20:05:49 -0400
From: Sudershan virdi virdi@interlog.com
Subject: Re: DBA: max extents
The maxextents value must be set to unlimited
Sudershan
Date: Wed, 11 Aug 1999 22:28:47 -0400
From: fushan@gamma.aei.ca
Subject: Re: DBA: max extents
Hi DBAs
Thanks for your answer. I just found the answer from the book
called "Advanced Tuning and administration" book. For any DB
prior V7.3, the number of maxextent is dependent on the block
size. For V7.3 or later, you can set maxextents to unlimited which
is 2147483645. Very big
Fu-shan Louisa Leong
Oracle DBA, Oracle Financial Application
Andersen Consulting
Autoextend of Datafiles
Date: Fri, 23 Jul 1999 13:35:25 +0530
From: "GopalaKrishnan K" gopalak@wiproge.med.ge.com
Subject: Re: max number of extents
Hi Apps DBAs !
Here is an article about Autoextend of Datafiles
written by Mike Ault !
Regards,
K Gopalakrishnan
Database Administrator
GE Medical Systems Limited,
X Ray (South Asia) Pune-INDIA
Pin:411014 Ph # +91 20 6688693 /4
******************************************* From Mike
Ault*****************************************
Here is an excerpt from a column I wrote for Oreview Magazine:
Information on the Auto-extend Option for the Tablespace Datafiles
A question was posted on the ORASUPP forum concerning where to get
information
from the data dictionary about the auto-extend options for datafiles.
Support's answer was that
the only way to get this information was to query the SYS table FILEXT$.
Unfortunately this table looks like this:
Name
Null?
Type
-------------------------------
--------
----
FILE#
NOT NULL
NUMBER
MAXEXTEND
NOT NULL
NUMBER
INC
NOT NULL
NUMBER
This structure means that in order to get back to the actual file name and
tablespace
you need to join to several other tables: FILE$, TS$ and V$DBFILE. I suggest
creating a
view based on the select shown in figure 1.
create view dba_file_data as
select
a.name tablespace,a.dflminext min_extents, a.dflmaxext max_extents,
a.dflinit init,a.dflincr next,a.dflextpct pct_increase, d.name datafile,
b.blocks datafile_size, c.maxextend max_extend, c.inc ext_incr
from ts$ a, file$ b, filext$ c, v$dbfile d
where
a.ts#=b.ts# and b.file#=c.file# and b.file#=d.file#
/
Figure 1: Script to Create a Datafile View.
This script creates the view DBA_FILE_DATA which will look like this when
queried:
Name Null? Type
------------------------------- -------- ----
TABLESPACE NOT NULL VARCHAR2(30)
MIN_EXTENTS NOT NULL NUMBER
MAX_EXTENTS NOT NULL NUMBER
INIT NOT NULL NUMBER
NEXT NOT NULL NUMBER
PCT_INCREASE NOT NULL NUMBER
DATAFILE VARCHAR2(257)
DATAFILE_SIZE NOT NULL NUMBER
MAX_EXTEND NOT NULL NUMBER
EXT_INCR NOT NULL NUMBER
Supposedly ORACLE8 will have the autoextend information in the DBA_DATA_FILE
view, but
for those of us who have a number of ORACLE7 databases the above view will
come in handy
if we use the auto-extend options. The script should be run as SYS and a
grant made to
public and a synonym created for access of the view.
Michael R. Ault
DMR Consulting Group
The Results People
Associate Director Oracle Practice
(770)-621-0300 X2790
Fax: (770) 939-0310
RevealNet Senior Technical Officer