oracle重建数据字典会影响业务嘛
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle重建数据字典会影响业务嘛相关的知识,希望对你有一定的参考价值。
会影响的,数据字典是oracle存储关键信息的表和视图的集合。oracle进程会在sys模式中维护这些表和视图,也就是说数据字典的所有者为sys用户,数据存放在system表空间中,数据字典描述了实际数据是如何组织的,如一个表的创建者信息,创建时间信息,所属的表空间信息,用户访问权限等等。对数据字典可以向处理其他数据库和表或试图一样进行查询,但不能进行任何修改。oracle数据字典通常是在创建和安装数据库时被创建的。oracle数据字典是oracle数据库系统工作的基础。没有数据字典的支持,oracle数据库系统就不能进行任何工作。 参考技术A 不会影响
当索引的碎片过多时,会影响执行查询的速度,从而影响到我们的工作效率。这时候采取的最有利的措施莫过于重建索引了。
本文主要介绍了Oracle数据库中检查索引碎片并重建索引的过程,接下来我们就开始介绍这一过程。 重建索引的步骤如下:
1. 确认基本信息 登入数据库,找到专门存放index 的tablespace,并且这个tablespace下所有index的owner都是tax.将index专门存放在一个独立的tablespace, 与数据表的tablespace分离,是常用的数据库设计方法。
2. 查找哪些index需要重建 通过anlyze index .... validate structure命令可以分析单个指定的index,并且将单个index 分析的结果存放到 index_stats试图下。一般判断的依据是: height >4 pct_used < 50% del_lf_rows / lf_rows +0.001 > 0.03 g )
3. google上下载了遍历所有index脚本 发现anlyze index .... validate structure只能填充单个index分析信息,于是google了下,从网上下了个Loop 脚本,遍历索引空间下所有的索引名字,并且可以把所有index的分析信息存放到自己建立的一个用户表中。
4. anlyze index 锁定index 发现下载的脚本不好用,应为anlyze index在分析索引前要争取独占锁,锁住index,很明显有些index正在被应用系统的使用,所以运行anlyze失败。这里吸取的教训是,尽量晚上做这种事。但是本人比较喜欢准时回家,所以在语句中添加Exception Handler,抛出anlyze index执行失败的那些index 名称,使脚本正常运行完毕。并且根据打印到前台的index name手动执行那些index分析。
5. 总结 虽然发现522个index中有160个符合上面的判断的依据。但是发现索引都不大,而那些拥有百万leaf的索引又没有符合上面的判断条件,所以结论是无需index rebuild online. 没有啥碎片。
6.什么时候可以rebuild index呢? rebuild index online,对那些有大量DML操作的大索引是有益的。可以每个月季度做一次针对较大索引的rebuild。
Oracle 11g R2 数据字典
数据字典是oracle存储关键信息的表和视图的集合。oracle进程会在sys模式中维护这些表和视图,也就是说数据字典的所有者为sys用户,数据存放在system表空间中,数据字典描述了实际数据是如何组织的,如一个表的创建者信息,创建时间信息,所属的表空间信息,用户访问权限等等。对数据字典可以向处理其他数据库和表或试图一样进行查询,但不能进行任何修改。
oracle数据字典通常是在创建和安装数据库时被创建的。oracle数据字典是oracle数据库系统工作的基础。没有数据字典的支持,oracle数据库系统就不能进行任何工作。
数据字典的构成:数据字典分为数据字典表和数据字典视图。数据字典中的表不可以直接被访问,但是可以访问数据字典中的视图。数据字典视图分为两类:静态数据字典视图和动态数据字典视图。数据字典视图分为两类:静态数据字典视图和动态数据字典视图;
数据字典表:数据字典表中的数据是oracle系统存放的系统数据,而普通表存放的是用户的数据,为了方便的区别这些表,这些表的名称都是用“$”结尾,这些表属于SYS用户。
为了方便用户对数据字典表的查询,oracle对这些数据字典分别建立了用户视图,这样既容易记住,还隐藏了数据字典表之间的关系。
静态数据字典视图
静态数据字典中的视图分为3类:他们分别有3个前缀构成:USER、ALL、DBA
USER:该视图存储了当前用户的所拥有的对象的信息(即所有在该用户模式下的对象)
ALL:该视图存储了当前用户的能够访问的对象的信息(与USER相比,ALL并不需要拥有该对象,只需要具有访问该对象的权限即可);
DBA:该视图存储了数据库中所有对象的信息(前提是当前用户具有访问权限,一般来说必须具有管理员权限)
列举常用的数据字典视图
usertables:主要描述当前用户所拥有的所有表的信息,主要包括表名,表空间等信息,使用SCOTT用户连接数据库实例,查看SCOTT用户下的所有表的信息。
查看SCOTT用户拥有哪些索引
查看SCOTT用户所拥有的数据库对象
查看SCOTT用户能够访问的所有表,过程,函数等信息
查询结果截图
查看数据字典:如果需要了解每个视图更多的信息,可以通过DICTIONARY命令来查看所有的视图和其他描述,该表只有两个字段,表名和描述
动态数据字典视图及使用
除了静态数据字典中有3类视图,其他的字典视图中主要是V$视图,之所以这样命名是因为这些视图会不断的进行更新,可以以反映出当前实例和数据库的运行状况。动态性能表用于记录当前数据库的活动,只存在于数据库运行期间,实际的信息都取自内存和控制文件。DBA可以使用动态视图来监视和维护数据库。
举例说明动态数据字典的使用
从结果中可以看出,当前数据库正在使用的日志组是GROUP 3,数据库运行在非归档模式下,该日志组有一个日志成员,存储目录为/u01/app/oracle/oradata/orcl/,日志文件名为redo03.log
如果对此文有什么问题的话,请加下面微信一起探讨
以上是关于oracle重建数据字典会影响业务嘛的主要内容,如果未能解决你的问题,请参考以下文章