我需要向一个中等大的表中添加一些索引,我想事先知道表空间是否有容纳索引的空间。(这些区段的大小应该自动递增,但DBA的区域设置并不总是正确的,我不想成为崩溃系统的那个。)要查看有多少可用空间,需要运行的SQL是什么?
发布于 2009-09-23 22:39:50
select tablespace_name, round(sum(bytes)/(1024*1024)) free_mb
from dba_free_space group by tablespace_name;但事情并不总是那么简单。例如,虽然可能有1亿可用,而且你可能想要创建一个你估计将达到8000万的指数,但它可能试图抓住1.2亿的新范围,然后失败。
另外,如果你有一张5千万的桌子,然后把它扔了,你的100米可能是两块5千万。同样,如果数据库试图获得一个100米的范围,它可能会失败。
如果表空间没有空闲空间,但被设置为自动扩展(segment_space_management on dba_tablespaces),那么它可能会显示为空间不足,但会工作。或者不是,取决于基础文件系统是否有足够的空间。
https://serverfault.com/questions/68142
复制相似问题