如果我没有访问 v$parameter
视图的权限,有没有一种方法可以确定我的 Oracle 数据库块的大小?
谢谢!
f.
select distinct bytes/blocks from user_segments;
由于每个表空间的块大小不同,建议您使用以下查询:
select block_size, tablespace_name from dba_tablespaces;
是的,那么你有一个严重的问题。查询 user_segments 可能非常慢,特别是在运行创建数万个段并倾向于碎片化数据字典的 SAP 或 Infor BAAN 时。最好说服你的 DBA 以某种方式授予你权限,也许通过具有 v_$ 的视图。
另一种执行效果更好的替代方法:当你可以创建段时,你具有一些表空间访问权限(请注意,在没有任何段时 distinct 不起作用)。这个列表通常较短,所以例如使用:
select bytes/blocks from user_ts_quotas
这仍然留下了一个社交工程问题,即当用户受到如此限制以至于没有配额时,需要与本地 DBA 协商解决 :-)