The invention provides an instruction execution method, which includes: receiving data operation instructions and acquiring data operation objects corresponding to data operation instructions; judging whether the information of data operation objects is set in the preset scene lock registry; setting data operation instructions to the waiting queue if the information of data operation objects is set in the scene lock registry; and setting data operation instructions to the waiting queue if the information of data operation objects is set in the scene lock registry; If the information of the image is not set in the scene lock registry, the information of the data operation object is set in the scene lock registry to create the corresponding scene lock; and the data operation instruction is executed; the execution result of the data operation instruction is returned; and the information of the corresponding data operation object is deleted in the scene lock registry. The invention also provides an instruction execution device and a storage medium. The invention improves the effective utilization of memory resources of the corresponding database system and the processing efficiency of data operation instructions.
【技术实现步骤摘要】
指令执行方法、指令执行装置及存储介质
本专利技术涉及数据处理领域,特别是涉及一种指令执行方法、指令执行装置及存储介质。
技术介绍
现在的数据库系统,如PostgreSQL、MySQL、Oracle等主流数据库系统,对于SQL处理操作,如数据更新操作等,都支持使用封锁并发访问控制机制来消除多个数据处理指令并发操作带来的数据不一致的问题。即现有的多数数据库系统均使用封锁机制中的行级锁对指定的数据项进行锁定,以避免数据不一致的问题。如对上述数据更新操作使用行级锁的封锁机制,即数据库系统需要在每个被操作的数据项上记载所请求的行级锁、已施加的行级锁、等待施加的行级锁及其属主等信息;还需要在一个会话中记录本会话的事务中所有的行级锁信息,以便对行级锁进行查找。当数据更新指令的并发数量很高时,上述信息需要耗费大量内存资源。在数据更新指令的并发数量很高时,数据库系统内会生成的大量的行级锁,而后续的行级锁生成操作,数据库系统需要遍历所有的已施加的行级锁,以查看是否存在同样的行级锁,存在则停止加锁操作。同时数据库系统还需要确定该行级锁的加锁操作,是否会导致与之前施加的行级锁形成操作环, ...
【技术保护点】
1.一种指令执行方法,其特征在于,包括:接收数据操作指令,并获取所述数据操作指令对应的数据操作对象;判断所述数据操作对象的信息是否设置在预设的场景锁注册表中;如所述数据操作对象的信息设置在所述场景锁注册表中,则将所述数据操作指令设置到等待队列;如所述数据操作对象的信息未设置在所述场景锁注册表中,则将所述数据操作对象的信息设置到场景锁注册表中,以创建对应的场景锁;并执行所述数据操作指令;以及返回所述数据操作指令的执行结果;并在所述场景锁注册表中删除对应的数据操作对象的信息。
【技术特征摘要】
1.一种指令执行方法,其特征在于,包括:接收数据操作指令,并获取所述数据操作指令对应的数据操作对象;判断所述数据操作对象的信息是否设置在预设的场景锁注册表中;如所述数据操作对象的信息设置在所述场景锁注册表中,则将所述数据操作指令设置到等待队列;如所述数据操作对象的信息未设置在所述场景锁注册表中,则将所述数据操作对象的信息设置到场景锁注册表中,以创建对应的场景锁;并执行所述数据操作指令;以及返回所述数据操作指令的执行结果;并在所述场景锁注册表中删除对应的数据操作对象的信息。2.根据权利要求1所述的指令执行方法,其特征在于,所述指令执行方法还包括步骤:创建用于记录所述数据操作对象的信息的场景锁注册表。3.根据权利要求1所述的指令执行方法,其特征在于,所述在所述数据操作对象的信息设置到场景锁注册表中的步骤具体为:按预设的数据操作对象的优先级顺序,将所述数据操作对象的信息设置到场景锁注册表中。4.根据权利要求3所述的指令执行方法,其特征在于,所述判断所述数据操作对象的信息是否设置在预设的场景锁注册表中的步骤包括:按所述数据操作对象的优先级顺序,遍历所述场景锁注册表;以及根据遍历的实时结果,判断所述数据操作对象的信息是否设置在预设的场景锁注册表中。5.根据权利要求1所述的指令执行方法,其特征在于,所述数据操作对象为元组对象、表对象、视图对象、指令对象、以及数据库参数及事件对象中至少一个。6.根据权利要求1所述的指令执行方法,其特征在于,所述场景锁注册表为具有数据操作对象的优先级顺序的位图表或数组表,或不具有数据操作对象的优先级顺序的哈希表。7.根据权利要求1所述的指令执行方法,其特征在于,所述指令执行方法还包括步骤:对所述数据操作对象的信息的删除操作进行操作统计,以便获取所述数据操作对象的指令操作热度。8.根据权利要求1所述的指令执行方法,其特征在于,所述接收数据操作指令的步骤包括:接收外部的数...
【专利技术属性】
技术研发人员:李海翔,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。