如何查看数据库的默认表空间,与临时表空间

如何查看数据库的默认表空间,与临时表空间,第1张

select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files

select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile--sys用户查看

2、缩小临时表空间大小

alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M

3、扩展临时表空间:

方法一、增大临时文件大小:

SQL>alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m

方法二、将临时数据文件设为自动扩展:

SQL>alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited

方法三、向临时表空间中添加数据文件:

SQL>alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m

4、创建临时表空间:

SQL>create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M

5、更改系统的默认临时表空间:

--查询默认临时表空间

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

6、删除临时表空间

删除临时表空间的一个数据文件:

SQL>alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop

删除临时表空间(彻底删除):

SQL>drop tablespace temp1 including contents and datafiles cascade constraints

7、查看临时表空间的使用情况(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

ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS

用下面的命令可以修改数据库系统默认的表空间,就是修改参数DEFAULT_PERMANENT_TABLESPACE对应的值:

alter database default tablespace ee

复制

要改默认临时表空间,可以修改参数DEFAULT_TEMP_TABLESPACE对应的值。修改的语句如下:

alter database default temporary tablespace tempa

复制

修改表的表空间

ALTER TABLE SCOTT.T MOVE TABLESPACE EE

复制

修改用户的表空间

ALTER USER SCOTTDEFAULT TABLESPACE EE(表空间名)

ALTER USER SCOTTTEMPORARY TABLESPACE TEST_TMP (临时表空间名)

复制

注意:

1.即使用system 用户修改表的表空间

ALTER TABLE SCOTT.T MOVE TABLESPACE EE

复制

也会提示 ORA-01950 对表空间没有权限

2.scott 用户新建的表,属于ee表空间,但是无法插入,提示 ORA-01950 对表空间没有权限

临时表空间,是用户查询以及 *** 作时回大量用到的表空间。比如排序,分组等,如果数据量比较大,那么内存不可能都分给这一个用户工作存储数据,所以会把一些数据放在临时表空间中,这样能节省内存空间。而且再次查询时可直接从临时表空间中调取,节约时间。

默认表空间,存储数据的默认参数。比如你新建立了一张table,那么这个table建立在什么地方?基本参数是什么(比如块的大小,区的扩展等等)?如果这些都没有指定,那么就会放到默认表空间中。

举个例子:假设一个用户能够向3个表空间上存储数据,某次新建立了一个segment,没有指定表空间,那么这个segment就会存储到默认表空间上。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6796863.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存