生产库revoke和grant影响
昨天看了三少的帖子,关于在生产库进行用户系统或者对象权限的重新授予的风险,今天在群里讨论了下:
结论主要有一下:
重新授予权限将导致 SHARE POOL里的SQL重新解析,也就说重新授于对象权限,将导致缓冲里的涉及到该对象的SQL失效,其实这点很容易里理解,明白SQL执行的过程就能理解,判断:
根据Oracle官方的说法,SQL语句的执行有以下步骤:
l [5] Optimization - 确定访问方式,选择优化策略
l [6] QEP Generation - 形成执行计划
可见在第2步时就要重新确认,
具体可以参照白老大的:http://www.oraclefans.cn/forum/showblog.jsp?rootid=5597文章
所以结论就是:
1:如果是系统权限,对运行影响不大
2:如果是对象权限,会导致使用该对象的所有sql重新解析,产生严重的latch free等待,系统越繁忙影响越大.
所以操作时,尽量在事务比较少的时候做,解析主要影响的就是CPU。
