怎么察看Oracle 数据库表空间的使用情况

怎么察看Oracle 数据库表空间的使用情况,第1张

查看的方法和详细的 *** 作步骤如下:

1、首先,因为oracle在Linux系统下运行,所以必须连接到Linux系统,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,连接成功,进入Oracle控制台。

 输入命令“sqlplus / as sysdba”,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,在sql命令行上,输入以下代码,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,就可以查看相应的结果了,如下图所示。这样,问题就解决了。

select

bfile_name 物理文件名,

btablespace_name 表空间,

bbytes/1024/1024 大小M,

(bbytes-sum(nvl(abytes,0)))/1024/1024 已使用M,

substr((bbytes-sum(nvl(abytes,0)))/(bbytes)100,1,5) 利用率

from dba_free_space a,dba_data_files b

where afile_id=bfile_id

group by btablespace_name,bfile_name,bbytes

order by btablespace_name

该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。

上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为a、b、c,通过它们之间的关联关系,我们得到了表空间的相关信息。

工具/原料

CRT

方法/步骤

因为oracle运行在Linux系统下,首先,要连接Linux系统。

连上后,进行oracle控制台。输入命令:sqlplus/assysdba;

在oracle命令行中,输入:

selectt1name,t2name

fromv$tablespacet1,v$datafilet2

wheret1ts#=t2ts#;

这样就可以查看oracle数据库的表空间数据文件位置了。

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\1020\ORADATA\TELEMT\TEMP01DBF' resize 100M;

3、扩展临时表空间:

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

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01dbf’ resize 100m;

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

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

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

SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02dbf’ size 100m;

4、创建临时表空间:

SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11dbf’ 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/temp02dbf’ 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_usedtablespace_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_usedtablespace_name = temp_totaltablespace_name

ORDER BY BTABLESPACE, BSEGFILE#, BSEGBLK#, BBLOCKS;

希望能帮到您!

--1、查看表空间的名称及大小

select

ttablespace_name,

round(sum(bytes/(10241024)),0)

ts_size

from

dba_tablespaces

t,

dba_data_files

d

where

ttablespace_name

=

dtablespace_name

group

by

ttablespace_name;

--2、查看表空间物理文件的名称及大小

select

tablespace_name,

file_id,

file_name,

round(bytes/(10241024),0)

total_space

from

dba_data_files

order

by

tablespace_name;

3查看所有表空间使用情况

select

bfile_id

文件ID号,

btablespace_name

表空间名,

bbytes/1024/1024||'M'字节数,

(bbytes-sum(nvl(abytes,0)))/1024/1024||'M'

已使用,

sum(nvl(abytes,0))/1024/1024||'M'

剩余空间,

round(100

-

sum(nvl(abytes,0))/(bbytes)100,2)||

'%'

占用百分比

from

dba_free_space

a,dba_data_files

b

where

afile_id=bfile_id

group

by

btablespace_name,bfile_id,bbytes

order

by

bfile_id;

总有一款适合你!

一 查询某个表所在表空间的简单方法

PostgreSQL 提供类似" \ "命令很方便得到相关信息,命令如下:

skytf=> \d test_2

Table "skytftest_2"

Column | Type | Modifiers

--------+-----------------------+-----------

id | integer |

obj_id | integer | not null

name | character varying(64) |

Indexes:

"idx_hash_name" hash (name)

"idx_test_2" btree (id, obj_id)

Tablespace: "tbs_skytf_idx"

备注:如果这个表的表空间为当前数据库的默认表空间,那么上面则不会显示 Tablespace 信息,

相反,则会显示这张有的表空间,例如上面的表 test_2 的表空间为 tbs_skytf_idx,而

表空间 "tbs_skytf_idx" 不是数据库 skytf 的默认表空间, 那么如何查询数据库的默认

表空间呢,可以通过以下命令查询。

--11 查询数据库的默认表空间

skytf=> select datname,dattablespace from pg_database where datname='skytf';

datname | dattablespace

---------+---------------

skytf | 14203070

(1 row)

skytf=> select oid,spcname from pg_tablespace where oid=14203070;

oid | spcname

----------+-----------

14203070 | tbs_skytf

(1 row)

备注:通过以上查出数据库 skytf 的默认表空间为 tbs_skytf。

二 批量查询数据库表和索引的表空间

--21 查询表和索引所在的表空间

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)), tbspcname

from pg_class a, pg_tablespace tb

where areltablespace = tboid

and arelkind in ('r', 'i')

order by arelpages desc;

备注:上面只取了部分结果,这个查询能够查询表和索引所处的表空间,但是有一点需要注意,这个查询

仅显示表空间不是数据库默认表空间的数据库对像,而我们通常需要查出位于数据库默认表空间的

对像,显然上面的查询不是我们想要的,接下来看另一个查询。

--22 查询位于默认数据库表空间的对像

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)),reltablespace,relowner

from pg_class a

where arelkind in ('r', 'i')

and reltablespace='0'

order by arelpages desc;

备注:这个查询加入限制条件 reltablespace='0',即可查找出位于当前数据库默认表空间的

数据库表和索引。 通常这才是我们想要的结果,接下来可以把部分表转移到其它表空间上去,转移

的方法可以用 "ALTER TABLE move tablespace "或者重建索引移表空间等方法,这里不详细介绍。

--23 查询在某个表空间上的对像

select relname, relkind, relpages,pg_size_pretty(pg_relation_size(aoid)),reltablespace,relowner

from pg_class a, pg_tablespace tb

where arelkind in ('r', 'i')

and areltablespace=tboid

and tbspcname='tablespace_name'

order by arelpages desc;

--24 手册上对于 pgclass 视图的 reltablespace 字段解释

The tablespace in which this relation is stored If zero, the database is default tablespace is

implied (Not meaningful if the relation has no on-disk file)

以上就是关于怎么察看Oracle 数据库表空间的使用情况全部的内容,包括:怎么察看Oracle 数据库表空间的使用情况、如何查询Oracle表空间和数据文件信息、oracle怎么查表空间的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9291525.html

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

发表评论

登录后才能评论

评论列表(0条)

保存