首页 > 开发 > 综合 > 正文

ORA-12913: 错误简析,及处理心得

2024-07-21 02:09:51
字体:
来源:转载
供稿:网友

                                   ora-12913: 错误简析,及处理心得
     事先声明,因为工作变动,偶有整一年没有摸过oracle了,呵呵 
   昨天晚上装完oracle后,准备创建属于自己的表空间的时候,出现了ora-12913: 无法创建字典管理的表空前。 当然了,故障排除很简单,找到文档,看一眼就排除了。 但既然在oracle9i之后,系统缺省安装时为本地管理表空间(local managed tablespace)lmt,好处多多。
偶在翻阅各类文档时找到一个清华师兄lunar写的文章。
现部分摘录如下:

1:本地管理的表空间比字典式管理的表空间有如下优点:

• 本地管理避免了循环空间管理操作,而这种操作在字典式管理表空间中可能发生(当消耗或释放某个区的空间,导致另一个消耗或释放回退段或数据字典表内空间的操作)

• 因为本地管理的表空间不记录数据字典表中的空闲空间,从而减少了对这些表的争用

• 区的本地管理自动跟踪邻近的空闲空间,因而无须合并空闲区

• 本地管理的区大小可以由系统自动决定,作为选择本地管理的表空间内的所有的区都可以有相同大小

• 转换为区的位图不会生成回退信息,因为它们不更新数据字典中的表(除表空间定额信息等特殊情况外)

2:创建本地管理表空间的一些选项
   在oracle 9i数据库中,本地管理表空间(lmt)是默认的空间管理方式。要想创建本地管理表空间(lmt),只需要在create tablespace 语句的extent management 子句中指定local字句。创建lmt时,你可以选择使用autoallocate 选项来使用oracle 自动管理盘区,或者可以使用一个指定大小(uniform size字句) 的统一盘区来管理该表空间。如果省略uniform size选项,则默认选项是autoallocate。

3:两类管理选项的用途

1:如果表空间中的extent的尺寸是不一定的,即需要不同的盘
区大小和拥有很多盘区的大小变动的对象,这时使用
autoallocate 是比较合理的选择。虽然有可能浪费了一些
空间,但是由oracle来管理空间的使用(空间分配和回收的工
作),简化了用户空间的管理。
2:如果想要准确控制未用的空间,并且能够精确地预计为一个
或更多对象要分配的空间和盘区的数目、大小等,那么使用
uniform 选项更合适,因为它确保在表空间中永远不会有
一定数量的未用空间。uniform size的默认大小是1mb,此
时,使用此方式创建数据文件时,数据文件的大小至少为
1mb。 (位图空间加上一个块)。



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表