Я должен знать истинный размер табличной области в Oracle. У меня есть некоторая табличная область, и я должен знать, сколько пространства она использует теперь и сколько пространство свободно (и возможно процент свободного пространства). Я нашел в сети некоторый sqls, но все они показали размер на основе водяного знака..., который не является истинным местом, выделенным теперь, но насколько я знаю самое высокое значение, которое когда-либо достигалось... Таким образом, моя реальная потребность состоит в том, чтобы знать, есть ли у меня достаточно пространства для моих данных, которые постоянно пишутся, и я должен знать, сколько из них я могу сохранить прежде, чем иметь необходимость удалить некоторые из них.
Спасибо
Попробуйте следующее:
-- Available space, by tablespace
SELECT * FROM
(SELECT tablespace_name FROM dba_tablespaces)
LEFT OUTER JOIN
(SELECT tablespace_name, SUM(bytes) AS total_bytes
FROM dba_data_files
GROUP BY tablespace_name)
USING (tablespace_name)
LEFT OUTER JOIN
(SELECT tablespace_name, sum(bytes) AS used_bytes
from dba_segments
GROUP BY tablespace_name)
USING (tablespace_name)
LEFT OUTER JOIN
(SELECT tablespace_name, SUM(bytes) AS free_bytes
FROM dba_free_space
GROUP BY tablespace_name)
USING (tablespace_name);