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.

  • OMF and extent management

    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 wrong

    There'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?
    Thanks

    1) 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.

  • TEMP Tablespace Groups

    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 AM

    SQL> 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 Chauradia

    add 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
    Gony

    Hi,
    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