每天在大型 Oracle 生产数据库(10g)上工作,我们注意到像这样的操作
- 授予用户对表的读取权限
- 在表上创建触发器
锁定该表,并使所有坚持使用它的游标无效。
如果表很大(> 2000 万行)并且许多用户正在处理它,这会产生巨大的后果。
我的问题是:为什么 Oracle 会锁定表(毕竟我们并没有改变它的结构,而只是授予用户读取它的权限)以及为什么它需要使游标无效?
有没有办法让那些动作“更柔和”?
提前致谢。
替代问题:有没有办法知道在特定表上打开了多少游标,以尽量减少失效对该对象的影响?