Temp Tablespace Extent Management and workarea_size_policy / sort_area_size
So, in the past (8i etc) we used to size temporary tablespace like (n*sort_area_size) + db_block_size.
Now in 9i / 10g we have the workarea_size_policy setting and pga_aggregate_target. How would we set extent sizes for the temporary tablespace? We let Oracle control the areasize parameters on the fly.
Any suggestions out there? Typically, I like 1MB for no particular reason other than it matches my stripe size on the underlying disk. However, oracle will only write in chunks of your sort_area_size.
Are there any guidelines out there where we can guess at what Oracle will use for the Sort_area_size?
Thanks,
BradW
Thanks. I realize that. The only thing I was wondering about is what to set the extent sizes to be for the locally managed temp tablespace.
I was curious what Oracle will set the sort_area_size to be during run time with in the PGA aggregate we specify....
Just curious on the internal mechanisms so that I can tweak my temp tablespace a little bit.
Thanks,
BradW
Similar Messages
-
Different between datafile autoextent and tablespace extent management auto
hi guys,
the above got me thinking.
blocks are arrange in extents. The rest is ???? //??? ... . .... ..flaskvacuum wrote:
hi guys,
the above got me thinking.
blocks are arrange in extents. The rest is ???? //??? ... . .... .. Datafile autoextend (its not datafile auto extent) - It will increase datafile size when all space in datafile is occupied and all its extents are used. So when objects needs to grow, oracle will increase the size of datafile (if autoextend is ON) and allocate extents to objects.
Also see http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles003.htm
Tablespace extent management auto - Local managed tablespace will keep the track of extents in Bitmaps. Now creating this type of tablespace you can specify AUTOALLOCATE clause or the UNIFORM clause, AUTOALLOCATE will assign new extents to obejcts of size determine by oracle internally. UNIFORM if specified, oracle will assign uniform size extents to objects. Lets say you have specified 1M of Uniform size, then oracle will assign 1M of new extents to objects, all assigned extents will have same size i.e 1M. But its not the case with Autoallocate.
Autoallocate will determine whats the best extent size which he needs to allocate to segement. Its internal mechanism
http://docs.oracle.com/cd/B19306_01/server.102/b14231/tspaces.htm -
Difference between extent management and segment space management
Hello,
Could you tell me the difference between extent management and segment space management interms of datablocks?After 10g, default tablespace is locally managed and with this creation, your segment's spaces are managed "automatically".
Automatic segment space management is onlyt avaliable to locally managed tablespaces.
The logic of the automatic segment space management is;
For instance, we have a rectangle cube which is totally empty (1 extent - 8 segments - 64 block in default). If we enter a new data to our table, data is stored inside this cube with it's information. (default 8k). If our data must be splitted, check row chaining for further information.
At this point, oracle decides which block is filled with the entered data. It automatically fills the emty blocks. You can use this only if your tablespace is locally managed and your segment space managemet is auto.
On the other hand,
If we create dictionary managed tablespace,
Data is stored in "dictionary" (tables in SYS schema). This is a bit slower than locally managed tablespaces. So filling the extents, segments and blocks will be slow too. You need to specify the PCTUSED, FREELISTS, FREELISTS GROUPS for the storage of the data. If segment space managent is auto, you don't need to define those values.
In summary, locally managed tablespaces with automatic segment space management is Oracle's maybe the most important feature. I am not using dictionary managed tablespaces and i advice don't use it either. In the end, this is an upgrade of using segment spaces much more faster, easier and reliable, trustable.
PS: You will need to check "High Water Mark" for automatic segment space management. -
Difference between extent management and segment management
friends what is the basic difference between extent management and segment management,as we know that segment is a collection of extents then why is it necesassry to manage both??..and what is the need to do so?
saugat chatterjee wrote:
friends what is the basic difference between extent management and segment management,as we know that segment is a collection of extents then why is it necesassry to manage both??..and what is the need to do so?Oracle stores data in it's own logical structure.
Blocks --> Extent --> Segment
Oracle block(also known as page) being the granular level where the data is stored. Extent is a collection of blocks.
When you specify extent management, you mean where the allocation/de-allocation of extents(group of blocks) will be managed (either in dictionary or using bitmaps).
When you specify segment space management, you mean that how the space inside a block will be managed. Extent management doesn't control space distribution inside block.
Regards,
S.K. -
I have a few questions on OMF, extent management and going to 10g:
1) If I have mostly BLOB data, would it be better to create a bigfile tablespace or not?
2) For extent management, should I do local allocate?
3) If I use OMF, can I still specify autoextend for the datafiles?
4) If I create a tablespace for the BLOB data, would that be a good idea? Then make all the rest in another space, or does any one do that?user3804901 wrote:
I have a few questions on OMF, extent management and going to 10g:
1) If I have mostly BLOB data, would it be better to create a bigfile tablespace or not?Not sure this is dependent on whether you have BLOB data. Something to consider w/ bigfile tablespaces and 10g, is the fact that, depending on the size of the datafile, you may create a performance problem for backups, as, RMAN cannot parallelize backups on a single datafile until 11g.
So, if you have a 4TB datafile, RMAN has to back it up sequentially, in 10g. As I said, this problem is solved in 11g.
2) For extent management, should I do local allocate? What's 'local allocate'? I recommend autoallocate. It's simple and effective.
3) If I use OMF, can I still specify autoextend for the datafiles?Yes.
4) If I create a tablespace for the BLOB data, would that be a good idea? Then make all the rest in another space, or does any one do that?Yes, you could certainly do something like that. Generally, deciding how to divide up space amongst multiple tablespaces, is for convenience, and maybe reporting purposes. If you follow the Stripe-And-Mirror-Everything (SAME) strategy, then using tablespaces to "divide up" I/O doesn't really make sense any more. Whatever works for you, in terms of easing management and reporting, is probably ok.
Hope that helps,
-Mark -
Difference between enterprise manager and temp space header
The enterprise manager shows temp tablespace usage 0% and v$temp_space_header shows 99% of use.
what is wrongThere's nothing wrong. Temporary tablespaces don't release space,space is reused,when necessary. That is reflected in v$temp_space_header. EM shows used temporary space in this very moment.
Werner -
Check and identify cause of previous temp tablespace usage
Hi
Our production ERP database is on solaris and on version 9.2.0.8.0. The application tier and database tier are on two separate nodes.
Recently we observed that the temporary tablespace is being consumed more on a particular day. While monitoring the database,we observed the free temp tablespace was less and hence added 10gb space to it. However within 5-6 hours this space was utilised and certain requests/jobs failed due to no space in temp. This happened on 04th December 2012. Though the situation returned to normal post that,we need to find the cause of consumption of temporary tablespace in such large volumes. We are on 9i database and hence tried identifying the queries through statspack report as no views in particular exist for 9i.
We came across many queries which would help us identfy the current temp usage,but in 9i,we didnot find anything which would guide us on the historic temp tablespace usage. Can it be found via statspack? If yes,what exactly to check for in it? Request you to all please advice. Thanks.
Regards
Rdxdba-- To get historic information for a spesific sid,serial
column temp_mb format 99999999
column sample_time format a25
prompt
prompt DBA_HIST_ACTIVE_SESS_HISTORY
prompt
select sample_time,session_id,session_serial#,sql_id,temp_space_allocated/1024/1024 temp_mb,
temp_space_allocated/1024/1024-lag(temp_space_allocated/1024/1024,1,0) over (order by sample_time) as temp_diff
from dba_hist_active_sess_history
--from v$active_session_history
where
session_id=&1
and session_serial#=&2
order by sample_time asc
prompt
prompt ACTIVE_SESS_HIST
prompt
select sample_time,session_id,session_serial#,sql_id,temp_space_allocated/1024/1024 temp_mb,
temp_space_allocated/1024/1024-lag(temp_space_allocated/1024/1024,1,0) over (order by sample_time) as temp_diff
--from dba_hist_active_sess_history
from v$active_session_history
where
session_id=&1
and session_serial#=&2
order by sample_time asc
=========================================================================
---- For global temp usage info
col sid_serial format a10
col username format a17
col osuser format a15
col spid format 99999
col module format a15
col program format a30
col mb_used format 999999.999
col mb_total format 999999.999
col tablespace format a15
col statements format 999
col hash_value format 99999999999
col sql_text format a50
col service_name format a15
prompt
prompt #####################################################################
prompt #######################LOCAL TEMP USAGE#############################
prompt #####################################################################
prompt
SELECT A.tablespace_name tablespace, D.mb_total,
SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM v$sort_segment A,
SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
FROM v$tablespace B, v$tempfile C
WHERE B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;
prompt
prompt #####################################################################
prompt #######################LOCAL TEMP USERS#############################
prompt #####################################################################
prompt
SELECT S.sid || ',' || S.serial# sid_serial, S.username, S.osuser, P.spid,
--S.module,
--P.program,
s.service_name,
SUM (T.blocks) * TBS.block_size / 1024 / 1024 mb_used, T.tablespace,
COUNT(*) statements
FROM v$tempseg_usage T, v$session S, dba_tablespaces TBS, v$process P
WHERE T.session_addr = S.saddr
AND S.paddr = P.addr
AND T.tablespace = TBS.tablespace_name
GROUP BY S.sid, S.serial#, S.username, S.osuser, P.spid,
S.module,
P.program,
s.service_name,TBS.block_size, T.tablespace
ORDER BY mb_used;
--prompt
--prompt #####################################################################
--prompt #######################LOCAL ACTIVE SQLS ############################
--prompt #####################################################################
--prompt
-- SELECT sysdate "TIME_STAMP", vsu.username, vs.sid, vp.spid, vs.sql_id, vst.sql_text,vsu.segtype, vsu.tablespace,vs.service_name,
-- sum_blocks*dt.block_size/1024/1024 usage_mb
-- FROM
-- SELECT username, sqladdr, sqlhash, sql_id, tablespace, segtype,session_addr,
-- sum(blocks) sum_blocks
-- FROM v$tempseg_usage
-- group by username, sqladdr, sqlhash, sql_id, tablespace, segtype,session_addr
-- ) "VSU",
-- v$sqltext vst,
-- v$session vs,
-- v$process vp,
-- dba_tablespaces dt
-- WHERE vs.sql_id = vst.sql_id
-- AND vsu.session_addr = vs.saddr
-- AND vs.paddr = vp.addr
-- AND vst.piece = 0
-- AND vs.status='ACTIVE'
-- AND dt.tablespace_name = vsu.tablespace
-- order by usage_mb;
--prompt
--prompt #####################################################################
--prompt #######################LOCAL TEMP SQLS##############################
--prompt #####################################################################
--prompt
--SELECT S.sid || ',' || S.serial# sid_serial, S.username, Q.sql_id, Q.sql_text,
--T.blocks * TBS.block_size / 1024 / 1024 mb_used, T.tablespace
--FROM v$tempseg_usage T, v$session S, v$sqlarea Q, dba_tablespaces TBS
--WHERE T.session_addr = S.saddr
--AND T.sqladdr = Q.address
--AND T.tablespace = TBS.tablespace_name
--ORDER BY mb_used;
-- -
When is temp tablespace been freed?
Hi all
our temp tablespace is 2GB, and it is always full(100% used)
Could you tell me know
1) when temp tablespace is freed?
2) how to find out which users are using temp tablespace?
Thanks1) Extents in the temp tablespace are only freed when the database is shut down. It is normal, and desirable, for your temp tablespace to show as 100% full. Allocating extents is an expensive operation. Once Oracle allocates an extent in temp, it manages them internally, re-using them as required.
2) You can use v$sort_usage to see who is using temp tablespace. However, do not be surprised if noone is using temp even if it is 100% full.
HTH
John -
TEMP tablespace getting full while inserting a CLOB in Trigger
We have a Oracle 10g (10.2.0.4.0) DB on a Solaris 9 box which also runs our J2EE web-service application on Weblogic 8sp6 server.
We get around 220K web-service requests from upstream callers daily to insert data in the main table, say TABLE1, which has daily partitions on a date column. This table has around 21 columns out of which 1 is a CLOB column.
Now this table has an AFTER INSERT trigger which calls a package procedure to insert the same record into another table, say TABLE2.
From Java application insert statement in executed in below format using a weblogic jdbc connection pool :
INSERT INTO TABLE1(COLUMN1, COLUMN2, ........., CLOB_COLUMN,........, COLUMN21) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20);
Clob object is prepared in application using ojdbc14.jar.
We are observing a strange issue here. The TEMP tablespace utilization keeps on growing as more and more inserts are executed by application and after ~125K inserts the TEMP tablespace gets full and we start getting ORA-01652 error.
On further analysis we could see that there are only 7-10 session being maintained but as more and more inserts happen TEMP tablespace utilization goes on increasing for each of these sessions.
When we tried with inserting just few records and then watching the session details in v$session_wait then we could see that it is in INACTIVE state and waiting for the event ‘SQL*Net message from client’. This does not seem correct as the session has successfully inserted the data and committed the transaction and we can see the data in the tables as well.
The confusing thing here is when we modify the trigger to pass blank string('' ) instead of the CLOB column to TABLE2 then this issue does not occur. All 200K records are inserted properly and TEMP tablespace utilization also keep always below 1%.
Can you please help us in solving this issue. Is this related to any oracle issue?
Inside the package we have tried using DBMS_COPY statement to copy the CLOB column after insert but still same result.
Code for reference:
Trigger:
=====================================
CREATE OR REPLACE TRIGGER trg
AFTER INSERT OR UPDATE
ON TABLE1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF (:NEW.date_col > SYSDATE - 2)
THEN
IF (:NEW.cat IN (1001, 1002))
THEN
pkg.process_change
(:NEW.COLUMN1,
:NEW.COLUMN2,
:NEW.CLOB_COLUMN,
FLAG
END IF;
END IF;
END;
=====================================
Package:
=====================================
procedure PKG.Process_change(
p_COLUMN1 number,
p_COLUMN2 varchar2,
p_CLOB_COLUMN clob,
flag boolean
) is
v_watermark pls_integer;
v_type varchar2(1);
begin
if (flag) then
v_type := 'U';
else
v_type := 'I';
end if;
select t_seq.nextval into v_watermark from dual;
insert into TABLE2(
COLUMN1 number,
COLUMN2 varchar2,
CLOB_COLUMN clob,
watermark,
dml_type
)values (
p_COLUMN1 number,
p_COLUMN2 varchar2,
p_CLOB_COLUMN clob,
v_watermark,
v_dml_type
end;
=====================================My first thought on reading your post is that not only are you using a database version that is now so old it is in extended support and even then not even the most recent patchset for it.
The first thing I would do is move to 11gR2 and if you can't do that at least get to 10.2.0.5 and apply CLOB relevant patches as well.
Same goes for your operating system. Solaris 9 is ancient: So move to 10 which has vastly improved memory management.
To help you further it would be really valuable to know the table layout. For example is this a heap table or an IOT? Is it partitioned? Is this RAC? What size are the CLOBs? Are they stored in-line? Chunk size? etc.
This page should start you down the right road:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14249/adlob_tables.htm#sthref204
But I am also wondering why you would use a trigger to, as you say, "insert the same record into another table." This description is a poster child for "bad design." -
PDB without local TEMP Tablespace
Due to the Oracle Database 12c Concepts Guide it should be possible to create a PDB without a local TEMP Tablespace and the create PDB syntax includes the option (MAX_SHARD_TEMP_SIZE).
But I cannot find any hint how to create a PDB without a TEMP Tablespace or how to change the default temp tablespace to point to the CDB:
Any help will be appreciated.There is no standard way to create a PDB without a TEMP tablespace
Yes - there is. But you CLEARLY don't want to do things the standard way. You want to use some particular non-standard way.
It is not 'standard' to create a database without a temporary tablespace. That is almost ALWAYS a mistake. That generally happens when you use the CREATE DATABASE command and don't specify it properly.
When you create a database you do NOT have to create a temporary tablespace. That has been the RULE from the very beginning and it is still true for 12c. For proof see the DBA Guide:
http://docs.oracle.com/cd/E16655_01/server.121/e17636/create.htm#i1009290
Creating a Default Temporary Tablespace
The DEFAULT TEMPORARY TABLESPACE clause of the CREATE DATABASE statement creates a default temporary tablespace for the database. Oracle Database assigns this tablespace as the temporary tablespace for users who are not explicitly assigned a temporary tablespace.
You can explicitly assign a temporary tablespace or tablespace group to a user in the CREATE USER statement. However, if you do not do so, and if no default temporary tablespace has been specified for the database, then by default these users are assigned the SYSTEM tablespace as their temporary tablespace. It is not good practice to store temporary data in the SYSTEM tablespace, and it is cumbersome to assign every user a temporary tablespace individually. Therefore, Oracle recommends that you use the DEFAULT TEMPORARY TABLESPACE clause of CREATE DATABASE.
You don't have to believe me or the docs.
Try it yourself. That is the best way to learn. Post your results here for all to see.
That is what that 12c doc says and what ALL of the docs for the versions before say. See for yourself. Here is the doc link for Oracle 7.3 so you can see the CREATE DATABASE systax yourself
http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SQL73/ch4a.htm#createdatabase
Without a temp tablespace Oracle is forced to use the SYSTEM tablespace for the temporary.
These are the STANDARD ways:
1. Create PDB with a temporary tablespace.
2. Use the DBCA with a custom template
3. Create your own PDB seed database without a temp tablespace and then clone your seed to create other PDBs without a temp tablespace
4. Use CREATE DATABASE to create a DB without a temp tablespace and then plug it in to your CDB root container.
Those are ALL standard methods. The last three result in PDBs withoug a temp tablespace.
#1 is what you should be using.
1. Create PDB with a temporary tablespace.
2. Shrink/resize the temp tablespace down to a minimum if you want
3. Assign the users to the CDB temp tablespace if you don't want them using the PDB temp
I would appreciate if you only answer to questions if you have tested it or have a precise answer to it!
I have done BOTH of those things. Your failure to recognize that is NOT my problem.
I have created a PDB without a temp tablespace using DBCA and a custom template.
I have also created a PDB without a temp tablespace by using the historical standard method of CREATE DATABASE without a temp tablespace and then plugging it into the CDB and a PDB.
It is YOUR responsibility to RTFM and YOUR responsibility to actually put your fingers on the keyboard and try things.
The forum is NOT a coding service so you have no right to expect someone to write code for you and no right to get upset if they don't.
dbca doesn't use any other commands than the one's I've already tried!
Your reality is different than Oracle's. Support your reality with some facts.
I just created a PDB (create pluggable database) and no wonder that one comes with a temp tablespace.
I don't see where you posted ANYTHING that shows:
1. exactly WHAT you did
2. exactly HOW you did it
3. exactly what results you got.
If you want help with the code or a process you are using you have to POST that code or process.
We can NOT see your computer screen to see what screens you see or what entries you make.
Complain about the messenger all you want.
But you will NOT be successful with 12c if you refuse to RTFM and refuse to try things yourself. Making unsubstantiated statements or trying to attack me may make you feel better but you won't learn anything from it. -
In Datawarehouse environment, Database verion 10gR2:
Created two temp tablespaces TEMP1 and TEMP2 with 10GB each in a temp tablespace group(TEMP_GROUP) and assigned the TEMP_GROUP as default temporary tablespace to user "BATCH", expecting the batch user can use 20GB of temp tablespace.
When a process needs a temp tablespace of more than 10GB, the process fails with an error unable to extend temp tablespace. It is not utilizing the other 10GB TEMP tablespace.
When I assign a dedicated TEMP tablespace TEMP3 with 15GB as the default temp tablespace, the process succeeds.
It looks like when a session starts it assigns one TEMP tablespace(from group), if that fills up it is not taking advantage of the other TEMP tablespace in the group, which makes me think that Groups are not helping here.
Is there an other way around to utilize multiple temp tablespaces for a single user.
Can we expect an improvement of this feature in the future releases or is that not a possible scenario?-- Using a tablespace group, rather than a single temporary tablespace, can alleviate problems caused where one tablespace is inadequate to hold the results of a sort, particularly on a table that has many partitions. A tablespace group enables parallel execution servers in a single parallel operation to use multiple temporary tablespaces.
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE '/u10/oracle/oradata/dbt1/datafile/temp02.dbf'
SIZE 20M
TABLESPACE GROUP tempgroup1;
CREATE TEMPORARY TABLESPACE TEMP3 TEMPFILE '/u10/oracle/oradata/dbt1/datafile/temp03.dbf'
SIZE 20M
TABLESPACE GROUP tempgroup2;
ALTER TABLESPACE temp TABLESPACE GROUP tempgroup1;
select * from v$tempfile ;
select * from dba_tablespace_groups ;
alter user ABCD temporary tablespace tempgroup1 ;
-- Verify that temp group is assigned to user
select * from dba_users where username='ABCD' ;
After you assign the group to the user abcd then retry your operation as abcd user.
This time it will use both the temporary tablespaces for sort operations.
Thanks
GC -
Restored coldbackup and having trouble with TEMP tablespace
Hi, i succesfully restored from a coldbackup on solaris.(oracle 9.2)
i can log on to database using toad, query the database, but when i try to take an export or something i got the error
EXP-00056: ORACLE error 1157 encountered
ORA-01157: cannot identify/lock data file 203 - see DBWR trace file
ORA-01110: data file 203: '/sun2int1/oracle92/app/oracle/product/9.2.1/oradata/TPRS/temp03.dbf'
ORA-06512: at "SYS.DBMS_LOB", line 424
ORA-06512: at "SYS.DBMS_METADATA", line 1140
ORA-06512: at line 1
EXP-00000: Export terminated unsuccessfully
when i did the restore, i simply renamed the datafiles and redo logs.
But i didnt rename the TEMP datafile, as you can not rename it with a "alter database rename file ..." command
so thats the problem!
i planned to create a new default temp. tablespace, and simply make it default and drop the other one. but it does not work!
i tried to execute:
CREATE TEMPORARY TABLESPACE temp4 TEMPFILE '/oracleAS/TPRS/oradata/TPRS/temp4.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
create temporary tablespace temp01 tempfile '/oracleAS/TPRS/oradata/TPRS/temp01.dbf' size 100M;
but they all hang! i wait, but nothing happens! (and alert log does not log anything too)
and finally i tried to drop the default tablespace, and i couldnt drop it as i thought. (ORA-12906: cannot drop default temporary tablespace
So, im stuck and i beleive i have to RENAME the datafile for temporary tablespace. how can i do this?
Edited by: merope on Jun 9, 2009 11:32 AMSQL> col file_name for a50
col status for a15
col tablespace_name for a15
col PROPERTY_VALUE for a20
select file_name,tablespace_name,bytes/1024/1024 as "SIZE_IN_MB",status,autoextensible from dba_temp_files;
SELECT PROPERTY_NAME,PROPERTY_VALUE FROM DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
SQL> SQL> SQL> SQL> SQL> SQL> ERROR:
ORA-01157: cannot identify/lock data file 202 - see DBWR trace file
ORA-01110: data file 202: '/izmir1/oradbTPRS/temp1.db'
no rows selected
SQL>
PROPERTY_NAME PROPERTY_VALUE
DEFAULT_TEMP_TABLESPACE TEMP3
This is not the actual directory: /izmir1/oradbTPRS/temp1.db
it is the old location, but in the restored db, the temp1.db file is in some other directory
how can i rename this?
Edited by: merope on Jun 9, 2009 11:50 AM -
Relation between temp tablespace and index creation
Hi,
I have my Oracle database (11gR1) on windows 2008 server R1 64 bit..
This is my development database. i have one table which has more than 2 billion rows , the problem i m facing here is while creating the index on this table i m getting temp segment error , while my temp tablespace size is 32 gb.
Here my doubt is :
1.What will happen in temp tablespace when index is created ? Relation between temp and index creation ?
2. how to create the index on a huge table?
3. What is the meaning og logging and no logging in INDEX creation .
4. how can we over come for these kind of problem and manage the temp TS..
Thanks & Regards,
Vikash Chauradiaadd another tempfile?
1.What will happen in temp tablespace when index is created ? Relation between temp and index creation ?
index creation needs sort. how much depends on the size of the index.
2. how to create the index on a huge table?
create an interim (temporary? :)) huge temporary space for the very purpose.
http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#i1006643
3. What is the meaning og logging and no logging in INDEX creation .
nologging means you the creation isnt in the logs so if you need to recover you cant get back to it. when using nologging in a prod env you might do it for performance during a period of heavy dml such as a large index creation and then backup afterwards. common enough.
4. how can we over come for these kind of problem and manage the temp TS..
current tempspace size =X
is X big enough? if yes, cup of tea, if no, make X bigger.
It doesnt matter what X is. -
TEMP tablespace is always full in Enterprise Manager
The TEMP tablespace is always (99.99%) full in Enterprise Manager console. How can I release it and check it?
Yes, Kamal did give the answer. owever, it still remains confusing to most people.
The temp tablespace, like all tablespaces, is used to hold SEGMENTS. There are several kinds of temporary segments, including sort segments and segments for global temporary tables.
WHen a segment is allocated, it takes time to find the blocks that are free and to format those blocks.
Oracle's performance measure to counter the cost of finding and formatting free blocks is to leave the segment allocated at that kind of block. When a session terminates, any temprary segments it holds will be released to the free pool of 'that type of temprary segment', and another session can then (as you say) reuse the space.
Still, this is frustrating for the new DBA who has not read the concepts manual and not searched the forum on 'v$sort' or 'temporary tablespace usage'.
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14220/logical.htm#sthref399 -
What is the difference between a tablespace, a segment and an extent ?
What is the difference between a tablespace, a segment and an extent ? Please explain in layman terms since I'm a total newbie to Oracle.
Regards
GonyHi,
These are logical structure of database
1. Tablespace : A database is divided into logical storage units called tablespaces, which group related logical structures together. For example, tablespaces commonly group together all application objects to simplify some administrative operations.
2.Segments
Above extents, the level of logical database storage is a segment. A segment is a set of extents allocated for a certain logical structure. The following table describes the different types of segments.
Segment Description
Data segment
Each nonclustered table has a data segment. All table data is stored in the extents of the data segment.
For a partitioned table, each partition has a data segment.
Each cluster has a data segment. The data of every table in the cluster is stored in the cluster's data segment.
Index segment
Each index has an index segment that stores all of its data.
For a partitioned index, each partition has an index segment.
Temporary segment
Temporary segments are created by Oracle when a SQL statement needs a temporary work area to complete execution. When the statement finishes execution, the extents in the temporary segment are returned to the system for future use.
Rollback segment
If you are operating in automatic undo management mode, then the database server manages undo space using tablespaces. Oracle Corporation recommends that you use "Automatic Undo Management" management.
3. Extents
The next level of logical database space is an extent. An extent is a specific number of contiguous data blocks, obtained in a single allocation, used to store a specific type of information.
Maybe you are looking for
-
How to send email but not receive it
Hi, I have 2 email addresses, one for work, and one for other. I like my work email to be forwarded to my Gmail because it archives all of my messages. But in Mac Mail I want to send email from both accounts and only receive from my gmail. Currently
-
I wish to move my iTunes library from my PC to an external drive to make room on my PC. How do I do this?
-
Displaying in the GUI from another called class
Hi, New to creating GUIs in java and I'm having two problems: 1- How do I display several images in my GUI in different areas of the GUI window? 2- For these images and my text boxes, how do I display things when it's not the class the GUI was create
-
How to create an install medium of Windows 8 with custom programs (like an OEM install)
Hello all, I am interested in setting up a small business of making PCs for people around my area, and was curious if there was any way I could install Windows 8.1 on those computers with custom programs (i.e. Browsers, Anti-virus, etc.), but not hav
-
Read/Write folder, but newly added files Read Only?
Our company uses a server to store a shared logo database and work files, and to transfer data from one user to another. At this point, we do not have any need for Read Only on this server; everything should be Read/Write. That's how it was set up in