Oracle OCP笔记(23)性能管理 - 无效对象
来源:互联网 发布:mysql数据导出 编辑:程序博客网 时间:2024/04/29 15:30
Oracle OCP笔记(23)性能管理 - 无效对象
一.决定数据库性能的因数
1.内存使用
Oracle实例的内存使用对性能起着至关重要的作用,如果未按最佳方式为各种结构分配内存量,性能将急转直下。
分配的内存量不能过少,也不能过多。
2.数据库对象的状态
如果无法使用索引,SQL语句的执行速度可能大大降低,并更密集地使用资源。
如果PL/SQL对象是无效的,则会对性能产生负面影响,也可能导致错误。应该识别、了解和修复所有不可用的对象和无效对象。
二.修改无效对象和无用对象
1.无效对象
理想状态下,所有对象都处于有效(valid)状态。PL/SQL对象和视图可能变得无效(invalid).
PL/SQL对象包括: 过程、函数、触发器、程序包、对象类型
在PL/SQL过程对象引用的任何数据对象在编译后发生了变化,则会将此过程标记为INVALID.
Oracle始终会自动重新编译无效的PL/SQL对象和视图,但并不一定能够成功。
查看无效对象:
select owner,object_name,object_type from dba_objects where status='INVALID'
尝试编译无效对象:
alter object_type object_name compile;
alter procedure procedure_name compile;
alter view view_name compile;
show errors -- 查看编译错误(视图不支持)
select * from dba_dependencies; -- 查看对象依赖表
2.无用的索引
一个索引由若干按照顺序排列的索引键值组成,其中每个索引键值都具有相关联的rowid,rowid是索引键引用的行的位置物理指针。
如果某个表的rowid发生变化,那么索引就会被标记为无用。
索引可能变得无用(unusable),原因很多,最常见的原因是使用alter table table_name move命令移动了指定的表,表的移动操作会改变所有行的物理位置。
在旧版本数据库中,出现无用索引,会话会返回错误消息。
在10g以后版本中,如果SQL语句视图使用无用的索引,语句会重新使用不需要该索引的执行计划,执行总会成功,但性能可能显著降低。可以设置参数:
skip_unusable_indexes -- 跳过无用索引,默认值为TRUE.
如果希望实现旧版本中无用索引返回错误消息的功能,修改参数为FALSE.
alter system set skip_unusable_indexes=false;
查看无用的索引:
select owner,index_name from dba_indexes where status='UNUSABLE';
重建索引:
alter index index_name rebuild online nologging;
选项:
tablespace -- 指定表空间,默认在当前的表空间重建.
online -- 重建过程会为DML命令锁定指定的表,使用online选项可以避免这种状况.
nologging -- 不为索引重建操作生成重做,可以快速重建,但需要立即对包含指定索引的表空间进行备份.
默认方式下,重建需要表锁,并将生成重做。
重建索引需要额外的存储空间,需做预先规划,确保具有可用的空间。
0 0
- Oracle OCP笔记(23)性能管理 - 无效对象
- Oracle OCP笔记(22)性能管理 - 内存管理
- Oracle OCP笔记(19)管理撤消
- Oracle OCP笔记(14)管理用户及权限
- Oracle OCP笔记(24)自动存储管理(ASM)
- Oracle OCP笔记(26)用户管理的数据库备份
- Oracle OCP笔记(15)模式对象(表,约束,索引等)
- Oracle OCP笔记(16)SQL与PL/SQL对象
- oracle 编译无效对象
- oracle 编译无效对象
- 查看oracle无效对象
- Oracle OCP笔记(09)数据字典视图与动态性能视图
- Oracle Compile 编译 无效对象
- Oracle Compile 编译 无效对象
- 编译无效的Oracle对象
- 无效对象 oracle invalid object
- Oracle Compile 编译无效对象
- ORACLE批量编译无效对象
- Objective-C相关Category的收集
- 第24讲—项目一—分段函数求值
- HDU ACM 1995 汉诺塔V
- IOS push对应的p12证书制作方法
- 欢迎使用CSDN-markdown编辑器
- Oracle OCP笔记(23)性能管理 - 无效对象
- uboot-1.1.6移植心得
- Node.js 提升运行效率
- 数据库并发一致性案例分析
- 用maven定制一个车联网的天气预报解析项目
- qt中显示文件夹下的目录及文件的过滤
- 双链表实例
- 深入了解MySQL的索引(一)
- 对堆栈8字节对齐问题的讨论