暂无图片
表空间数据文件没有充分利用
我来答
分享
四八老姜
2020-06-08
表空间数据文件没有充分利用

image.png
描述:每个数据文件上限是32G,可是我已经增加第5个数据文件了。总大小也只有66G,想问下为什么没有充分利用每个数据文件,然后再使用下一个?如何解决此问题?

我来答
添加附件
收藏
分享
问题补充
15条回答
默认
最新
Moone

多个数据文件默认是均衡的,这个也符合性能优化的目的。如果一定要实现你的想法:
1、等数据文件快满时在新增新文件
2、手工为对象预分配extent到指定数据文件

其实你的想法是反数据库优化理论的。

暂无图片 评论
暂无图片 有用 0
四八老姜

就如我截图所示,表空间使用率已经95%啦。剩余使用空间只剩下3G啦,我需要继续新增数据文件吗? 我已经新增了4个数据文件,4*32=128G

暂无图片 评论
暂无图片 有用 0
文成
SELECT file_name,TABLESPACE_name,bytes,autoextensible FROM dba_data_files;

结果贴出来看看

暂无图片 评论
暂无图片 有用 0
四八老姜

image.png

暂无图片 评论
暂无图片 有用 0
四八老姜

image.png

暂无图片 评论
暂无图片 有用 0
黄伟波

用我这个SQL查,应该可以看出最大可使用的
SELECT SUBSTR(a.TABLESPACE_NAME,1,30) TablespaceName,
round(SUM(a.bytes/1024/1024/1024),2) AS “Totle_size(G)”,
round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2) AS “Free_space(G)”,
round(SUM(a.bytes/1024/1024/1024),2)-round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2) AS “Used_space(G)”,
ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0))) *100/SUM(a.bytes/1024/1024/1024),2) AS “Used_percent%”,
round(SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2) AS “Max_size(G)”,
ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0)))*100/SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2) AS “Max_percent%”
FROM dba_data_files a,
(SELECT SUM(NVL(bytes,0)) free_space1,
file_id
FROM dba_free_space
GROUP BY file_id
) b
WHERE a.file_id = b.file_id(+)
GROUP BY a.TABLESPACE_NAME
ORDER BY “Used_percent%” desc;

暂无图片 评论
暂无图片 有用 0
四八老姜

image.png

暂无图片 评论
暂无图片 有用 0
黄伟波

你这个表空间目前最大是78G,使用了65.9%

暂无图片 评论
暂无图片 有用 0
四八老姜

image.png
这个已经使用百分比,96.67%,不是真实的吗?平时都是用这个脚本查看
查询分配空间的使用情况:
SELECT tablespace_name as 表空间,round((sum_alloc - nvl(sum_free,0))/1024/1024,1) as 已用空间M,round(sum_max/1024/1024,1) as 总大小M,round(100*(sum_alloc - nvl(sum_free,0))/sum_max,1) As 使用百分比 FROM ( SELECT tablespace_name, sum(bytes) AS sum_alloc, sum(decode(bytes,0,bytes,bytes)) AS sum_max FROM dba_data_files GROUP BY tablespace_name),( SELECT tablespace_name AS fs_ts_name, sum(bytes) AS sum_free FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name(+) order by 使用百分比 desc;

暂无图片 评论
暂无图片 有用 0
四八老姜

我现在不用再新增数据文件了吗?

暂无图片 评论
暂无图片 有用 0
文成

如果 autoextensible 是yes ,则表明数据文件会随着使用情况自动扩展
一般生产环境直接指定最大数据文件大小,并把 autoextensible 关闭,防止由于数据文件增长导致性能瓶颈

暂无图片 评论
暂无图片 有用 0
四八老姜

我就想了解,到底以哪个参数作为指标。大概到90%的时候,我好及时扩容

暂无图片 评论
暂无图片 有用 0
文成

可以 伟波 脚本中的 max_percent% 来看

暂无图片 评论
暂无图片 有用 0
四八老姜

好的。感谢

暂无图片 评论
暂无图片 有用 0
田弼元

不是真实的,真实是65.94%。前提是剩余的存储支持这个表空间扩展到78.65G

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏