暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
【排故篇】_啥是无效对象,出现时如何破?
657
7页
2次
2019-09-23
10墨值下载
【排故篇】
_
啥是无效对象,出现时如何破?
【前言】





库中存在哪些失效对象。自动失效的对象,一般会在下次调用的时候,会被重新编译,所
以一般也不需要人工干预。对于存在异常的对象需要重新编译了;还有一个场景就是数据
迁移导也会导致无效对象的产生。
最近做了一次

数据库版本升级,版本有

版本升级到两节点

架构的

本。升级完后例行排查问题,使用如下命令发现升级后的失效对象激增,这是啥原因,怎
么解决,本文将进行解答。
本文将回答如下问题:

为什么对象突然会失效?

如何快速、高效的编译失效对象?

如何编辑分区表的无效对象?
一、 对象为啥突然失效
数据库对象失效,大致归纳如下原因:
!
被引用对象结构发生变化
被引用对象的结构发生改变时,其相关的依赖对象会变为

状态。
数据库中的对象(存储过程,函数,包,视图,触发器),它们往往需要直接或者间接的
引用其它对象,对象的依赖包括直接和间接二种,其中直接依赖是指存储对象直接依赖于
被引用对象,而间接依赖是指对象间接依赖于被引用对象。
要查看被引用的对象,可以通过下面
"#
查看
$%&'()*+$,(-./)0%(.1
$%&'(*+$,(-./)0%(.1
$%&'($*+$,(-./)0%(.1
实际生产中,不管视图,像存储过程,函数、包等,只是引用的对象发生了变化,均会导
致调用对象失效,但并不影响调用,原因为
23
在调用时会自动重新编译对象;
2
会自动维护分区索引,对于全局索引,如果在对分区表进
%%4+45,
操作分区时,此时若没有使用
+%5
,则会导致全局索引失效,需要重建。后续会着
重分析下哪些情况下会导致分区表的全局索引和局部索引失效。
注意:
如果对象变化后导致编译有错,那么此调用对象时重新编译后也是错误并处于失效
态,调用会出错。
:被编辑对象出错
发布
"#
脚本时(包、存储过程、函数等),测试不充分编译时出错,这时对象变为无效。
!
数据库升级、迁移时,出现大量无效对象;
个人推断为:数据升级或迁移时,对象之间倚赖关系被破坏,导致被引用对象失效;看过
数据泵导出导入过程的朋友都知道,日志中的对象生成顺序、命令执行顺序是不一致的,
尤其是开了
+
并发度时。在对象创建前后顺序的错乱,被引用的对象尚未创建时便被
623*72834)($4(4%+$9
进行重新编译。
二、如何快速、高效的编译失效对象?

使用如下命令查看无效对象:
::
统计查看无效对象
"#
::
查看具体失效对象

编译失效对象的方法
主要有种方法:
方法
使用
;3&&&283
语句手工进行编译
使用如下命令进行:
【注意】
此方用于、个象失效时使用。如果失效对较多动一个个的调
of 7
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜