WEB开发网
开发学院数据库Oracle Oracle数据库中如何改善表空间的管理 阅读

Oracle数据库中如何改善表空间的管理

 2007-05-06 12:06:02 来源:WEB开发网   
核心提示:在Oracle9i Database之前,如果在创建用户时没有指定默认表空间,Oracle数据库中如何改善表空间的管理,那么它将默认为SYSTEM 表空间,如果用户在创建一个段时没有显式地指定一个表空间,它将默认为 SYSTEM,但您如何才能知道现有的数据库的默认表空间是哪一个?发出以下查询:SELECT PROPER

在Oracle9i Database之前,如果在创建用户时没有指定默认表空间,那么它将默认为SYSTEM 表空间。如果用户在创建一个段时没有显式地指定一个表空间,那么这个段将在 SYSTEM 中创建—前提是用户在 SYSTEM 表空间中拥有配额(要么显式地授予,要么通过系统权限 UNLIMITED TABLESPACE 来授予)。Oracle9i 允许DBA为所有未用显式的临时表空间子句创建的用户指定一个默认的临时表空间,从而减少了这个问题。

在 Oracle Database 10g 中,您可以类似地为用户指定一个默认表空间。在数据库创建期间,CREATE DATABASE 命令可以包含子句 DEFAULT TABLESPACE 。在创建之后,您可以通过发出以下命令来使一个表空间变成默认表空间:

ALTER DATABASE DEFAULT TABLESPACE <tsname>;

未用 DEFAULT TABLESPACE 子句创建的所有用户将以作为它们的默认表空间。您可以在任何时候通过这个 ALTER 命令来改变默认表空间,从而允许您在不同的节点上将不同的表空间指定为默认表空间。

重要注意事项:拥有旧的表空间的所有用户的默认表空间都被修改为,即使有些表空间是为某些用户显式指定的。例如,假定用户 USER1 和 USER2 的表空间分别是 TS1 和 TS2 — 它们是在用户创建期间显式指定的。数据库当前的默认表空间是 TS2,但之后,数据库的默认表空间变为 TS1。即使 USER2 的默认表空间是显式指定为 TS2 的,它也将变为 TS1。小心这种边界效应!

如果在数据库创建期间没有指定默认表空间,它将默认为 SYSTEM。但您如何才能知道现有的数据库的默认表空间是哪一个?发出以下查询:

SELECT PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME = 'DEFAULT_PERMANENT_TABLESPACE';

DATABASE_PROPERTIES 视图显示默认表空间之外,还显示一些非常重要的信息 — 例如默认临时表空间、全局数据库名、时区等。

1 2 3  下一页

Tags:Oracle 数据库 如何

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接