gpt4 book ai didi

oracle - 如何确定现有表空间的 MAXSIZE

转载 作者:行者123 更新时间:2023-12-04 01:55:34 25 4
gpt4 key购买 nike

我需要确定MAXSIZE在创建表空间时为其设置(Oracle 10g)

我确定我遗漏了一些明显的信息,但该信息在 DBA_TABLESPACES 中的信息中并未立即显现出来。 .

最佳答案

在 11g 中,这个查询会给你答案,但我注意到你在 10g 上,唉 the useful column is missing .

select tablespace_name, max_size 
from dba_tablespaces
/

在 10g 你将不得不
select tablespace_name
, initial_extent + (next_extent * (max_extents-1)) as calc_max_size
from dba_tablespaces
/

请记住,这是默认的最大大小。实际上,您将受到分配给表空间的数据文件大小的限制,该大小可能远小于该理论最大值。

编辑

@Paul 的评论是中肯的。我想正确的答案是表空间的最大大小是一个毫无意义的,实际上几乎是虚构的概念。一个表空间的大小实际上是由它的数据文件决定的,它潜在的最大大小是由可以分配的最大数据文件数决定的。 SQL Reference关于这个话题有这样的说法:
  • 大文件表空间仅包含一个数据文件或临时文件,最多可包含大约 40 亿 (232) 个块。单个数据文件或临时文件的最大大小对于具有 32K 块的表空间为 128 TB,对于具有 8K 块的表空间为 32TB。
  • smallfile 表空间是传统的 Oracle 表空间,它可以包含 1022 个数据文件或临时文件,每个数据文件或临时文件最多可以包含大约 400 万([2 的 22 次方])块。

  • 所以也许这是一个更有用的查询......
    select tablespace_name
    , count(*) as no_of_data_files
    , sum(maxblocks) as max_size
    from dba_data_files
    group by tablespace_name
    /

    ...需要注意的是,它仅适用于当前分配的数据文件。

    编辑 2

    MAXSIZE 适用于数据文件而不是表空间。这就是 documentation for the filespec clause 中讨论 MAXSIZE 关键字的原因。而不是在 CREATE TABLESPACE 下。

    关于oracle - 如何确定现有表空间的 MAXSIZE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364024/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com