重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个包的使用简单研究了一下,是这样:
创新互联专注于泗阳企业网站建设,响应式网站,商城系统网站开发。泗阳网站建设公司,为泗阳等地区提供建站服务。全流程按需开发网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
名称 类型 描述
ALLOCATE_UNIQUE Procedure 创建锁(如果此锁尚未建立)或者获得锁的标识符(如果此锁已经建立).
REQUEST Function 请求锁.
CONVERT Function 转换锁的状态.
RELEASE Function 释放锁.
SLEEP Procedure 让一个存储过程睡上指定的时间.
使用的大概方式是这样的:
1 先用ALLOCATE_UNIQUE建立新锁,并
identifier 'dbms_lock' must be declared。GRANT execute ON DBMS_LOCK TO aaa
意思是你要授权才能使用DBMS_LOCK这个包
在DBA身分下执行下面的授权
grant execute on dbms_lock to username ; -- username 你的用户名
另:你的应用使用触发器不合适,应使用时间标记,并用定时作业删除。
ORACLE有个延迟函数
dbms_lock.sleep(5)
延迟5秒
但如果太多触发器同时运行在系统中很容易非常多的其它问题,个人建议还是写个job在半夜执行来的实际一些
表有多大? 是否全表update 如果是全表,那不如用create table as 的方式来重新创建,否则可以考虑分区表,update 20W rows 如果条件不太复杂的应该还是很快的,还有就是最好把update语句贴出来看看。
可能有2个原因。
1在plsql中执行的结果实际上显示的是主库的查询结果(因为plsql默认连接的是数据库的VIP)。2主要原因是这个时间点业务量比较小,导致备库sysdate-controlfile_time的值变大。
ZABBIX近段时间某地区的DB备库同步异常,在后台查询主备是同步的。
使用dbms_lock.sleep(10);实现延时,本句子是等待10秒钟,具体想等待的时间,你可以从表中查询,再使用参数传递,即可实现。