匿名用户Oracle里有没有超时设置,如果某语句(dml居多)执行的时间太长(如30秒),跳过它,然后返回一个超时错误?
Oracle里有没有超时设置,如果某语句(dml居多)执行的时间太长(如30秒),跳过它,然后返回一个超时错误?
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
7条回答
默认
最新
dml没有吧,只有 SELECT .. FOR UPDATE WAIT 5,可以指定等待多少秒就报超时。
其实如果要保证更新时不长时间等待的话,一般做法是将要更新的记录用SELECT ... FOR UPDATE NOWAIT 锁定后,再UPDATE,也能保证处理逻辑的时候,抓取的数据是最新的。
评论
有用 0不建议你这么武断的想法,一旦设置了类似这么一个参数,所有的类似语句都会受到影响;
但按你题意的想法只是想让某一业务的DML语句的执行时间超过一定时间,让其跳过;这种的话,建议用存储过程的形式来进行,如在存储过程中判断你某一业务的dml语句执行的时长,如果时长超过指定的时间,直接kill immediate掉相应的session;
评论
有用 0要是有,在生产业务谁敢用,没这么奇葩的需求吧
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


