oracle10g临时表中的数据是默认存放在哪个表空间?还是以其他形式存放?

解决方案 »

  1.   

    PROPERTY_NAME                  PROPERTY_VALUE   DESCRIPTION
    ------------------------------ ---------------- --------------------------------------
    DEFAULT_TEMP_TABLESPACE        TEMP             Name of default temporary tablespace
    DEFAULT_PERMANENT_TABLESPACE   USERS            Name of default permanent tablespace
    DEFAULT_TBS_TYPE               SMALLFILE        Default tablespace type用如下SQL语句可以直到:
    select * from database_properties
    where property_name like 'DEFAULT%'由此我们得到在oracle10g中temp为默认的临时表空间。
      

  2.   

    oracle数据库根据用户不同。可以使用不同的临时表空间:
    楼主可以使用dba_users视图查看每个用户默认的临时表空间。select * from dba_users;可以使用如下命令修改用户的临时表空间:
    alter user xxxx temporary tablespace xxxxxx;
      

  3.   

    查看oracle临时表空间:
    select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
    --查询默认临时表空间
    select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
    --修改默认临时表空间
    alter database default temporary tablespace temp1;
    所有用户的默认临时表空间都将切换为新的临时表空间:
    select username,temporary_tablespace,default_ from dba_users;
    --更改某一用户的临时表空间:
    alter user scott temporary tablespace temp;查看临时表空间的使用情况
    GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询
    GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
    dba_temp_files视图的bytes字段记录的是临时表空间的总大小
    SELECT temp_used.tablespace_name,
           total - used as "Free",
           total as "Total",
           round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
      FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
              FROM GV_$TEMP_SPACE_HEADER
             GROUP BY tablespace_name) temp_used,
           (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
              FROM dba_temp_files
             GROUP BY tablespace_name) temp_total
     WHERE temp_used.tablespace_name = temp_total.tablespace_name;查看当前临时表空间使用大小与正在占用临时表空间的sql语句
    select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text
      from v$sort_usage sort, v$session sess, v$sql sql
     where sort.SESSION_ADDR = sess.SADDR
       and sql.ADDRESS = sess.SQL_ADDRESS
     order by blocks desc