『壹』 oracle表空间extens是什么意思
在 Oracle 数据库中,一个表空间(tablespace)是由一个或多个数据文件(datafile)组成的逻辑存储单元,用于存储数据库对象,如表、索引、存储过程等。
当一个表空间中的数据文件没有足够的空间来存储新的数据时,Oracle 会自动扩展这个表空间,以便继续存储数据。这个扩展过程称为“表空间的自动扩展”。
在 Oracle 中,表空间的自动扩展有两种方式:一种是增加数据文件,另一种是使用 EXTENTS。EXTENTS 是一种逻辑数据结构,是用来描述表空间中的空闲空间的。当表空间需要扩展时,Oracle 会从 EXTENTS 中获取空闲空间,用来存储新的数据。
一个 EXTENT 是由若干个连续的数据块组成,可以存储一个或多个数据库对象。EXTENTS 在表空间中形成一个链,每个 EXTENT 都指向下一个 EXTENT,形成一个链式结构,用于存储数据。当一个数据库对象需要扩展时,Oracle 会根据这个对象的大小,分配一个或多个新的 EXTENT,并将这些 EXTENT 插入到表空间的链中,用于存储新的数据。
因此,EXTENTS 是 Oracle 中表空间自动扩展的一种方式,用于描述表空间中的空闲空间,以便存储新的数据。
『贰』 oracle很多表且数据量很大,放在一个表空间好还是多个好
一般来说是多个
我们做个假设,如果放在一个表空间,那么如果同时有多个请求进入,要求访问不同的表,而恰好这些要访问的部分恰好在一个数据文件上(如果都放在一个表空间上,那么不是不可能),那么这一个文件的io和读取量会非常大,而且很慢。如果在不同的表空间上那么就不会有读同一个文件的问题。
但是,怎么划分表空间,也是一个问题,并不是简单的将表分开就可以。如果是数据仓库或者所谓的大数据分析,自然要考虑分层的因素,不过也要考虑访问因素和数据量因素。
比如,你把两个进入数据量很大的表放在一起了,看起来分了表空间,但是因为这个表空间的io很大,那么自然会导致入库缓慢。至于访问的例子,你用最开始的假设就可以。所以一般来说分开是一定的,但是怎么分,就要好好琢磨琢磨了,要考虑的因素太多。
比如:用户因素,存储(量/次)因素,访问(量/次)因素,计算量因素,层级因素,管理因素等等。
『叁』 oracle11g表空间和数据文件不能大于32g是指单个表空间还是单个数据文件不能大于32g
表空间 有最大值 是在创建的时候 设定好的,你可以试着改变表空间的最大值。删除用户只会改变表空间的实际大小,占用率;
查看表空间使用情况
SELECT tbs 表空间名,
sum(totalM) 总共大小M,
sum(usedM) 已使用空间M,
sum(remainedM) 剩余空间M,
sum(usedM)/sum(totalM)*100 已使用百分比,
sum(remainedM)/sum(totalM)*100 剩余百分比
FROM(
SELECT b.file_id ID,
b.tablespace_name tbs,
b.file_name name,
b.bytes/1024/1024 totalM,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,
sum(nvl(a.bytes,0)/1024/1024) remainedM,
sum(nvl(a.bytes,0)/(b.bytes)*100),
(100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))
FROM dba_free_space a,dba_data_files b
WHERE a.file_id = b.file_id
GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes
ORDER BY b.tablespace_name
)
GROUP BY tbs
查看表空间 文件属性
select file_name,autoextensible,increment_by from dba_data_files;
更改(主要是扩大)表空间 autoextend是自增长 但是有最大值
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\QIHANG.DBF' autoextend on next 1M maxsize 5000M;
『肆』 Oracle的表空间过一段时间就100%了,老是增加数据文件的大小也不是个办法,能有什么解决方案吗
具体情况具体分析。哪个表空间用的多。
如果确实数据量大,那必然要扩空间加数据文件。
如果数据库高水位线过高,浪费空间,那就在线回缩高水位,然后清表。
如果不会的话,教你一招,把你当前用户或者全库exp导出dmp,数据库清空,再imp导入dmp进库,库就会压缩很多。