在GBase南大通用数据库中,保持游标的规则

当使用事务日志记录时,GBase 8s 保证在事务结束时,可回滚在事务内所作的一切。要可 靠地处理事务,数据库服务器通常应用下列规则:

• 当事务结束时,关闭所有游标。

• 当事务结束时,释放所有锁。

对于支持事务的大多数数据库系统,用于可靠地处理事务的规则都是正常的。然而,存在 一些情况,随同游标使用标准事务是不可能的。例如,在没有事务的情况下,下列代码正 常工作。然而,当添加事务时,关闭游标与同时使用两个游标发生冲突。 

  EXEC SQL DECLARE master CURSOR FOR

 EXEC SQL DECLARE detail CURSOR FOR FOR UPDATE 

 EXEC SQL OPEN master;

 while(SQLCODE == 0)

 {

 EXEC SQL FETCH master INTO 

 if(SQLCODE == 0)

 { 

 EXEC SQL BEGIN WORK;

 EXEC SQL OPEN detail USING 

 EXEC SQL FETCH detail

 EXEC SQL UPDATE WHERE CURRENT OF detail

 EXEC SQL COMMIT WORK; 

 }

 }

 EXEC SQL CLOSE master; 

在此设计中,使用一个游标来扫描表。选择了的记录用作更新不同的表的基础。问题在于, 当将每一更新当做分开的事务处理时(如前一示例中伪代码所示),跟在 UPDATE 之后 的 COMMIT WORK 语句关闭所有游标,包括主游标。

最简单的替代方案是将 COMMIT WORK 语句和 BEGIN WORK 语句分别移到最后一个 语句和第一个语句, 这样,对整个主表的扫描就是一个大事务。将主表的扫描作为一个大 事务来处理,有时是可能的,但如果需要更新许多行,它可变得不现实。锁的数目可能太 大,并且在程序期间持有它们。 

 GBase 8s 数据库服务器支持的解决方案是将关键字 WITH HOLD 添加到主游标的声明。引 用这样的游标作为持有游标,在不在事务结束时关闭。数据库服务器仍然关闭所有其他游 标,且它仍然释放所有锁,但持有游标保持打开,直到显式地关闭它为止。 

在您尝试使用持有游标之前,您必须确保了解此处描述的锁定机制,且您还必须了解正在 并发地运行的程序。每当执行 COMMIT WORK 时,释放所有锁,包括放置在任何通过该 持有游标访存的行上的任何锁。 

对于对表的单向扫描,如果如您所愿地使用游标,则锁的移除无关紧要。然而,您可为任 何游标指定 WITH HOLD,包括更新游标和滚动游标。在您这么做之前,您必须了解该事 实的含义,即,在事务结束时,释放所有锁(包括对整个表的锁)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch自动求导机制

PyTorch框架可以帮我们计算好反向传播,需要求导的,可以手动定义 示例: #先构造一个随机的三行四列矩阵,两种方法都可以#方法1 x torch.randn(3,4,requires_gradTrue) x#方法2 x torch.randn(3,4) x.requires_gradTrue x #再构…

基于springboot+vue的在线文档管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 背景和意…

鸿蒙原生应用/元服务实战-Serverless云存储创建失败

新账户,Serverless云存储没法创建 ,没法进行下一步,有没有遇到同样问题与解决思路方式的。

首批!鸿蒙千帆起,生态全面启动

在近日举办的鸿蒙生态千帆启航仪式上,华为常务董事、终端BG CEO余承东表示,鸿蒙生态设备已经增至8亿 ,将打开万亿产业新蓝海。 在本次论坛上,华为宣布HarmonyOS NEXT鸿蒙星河版(开发者预览版)已面向开发者…

【优先级队列 之 堆的实现】

文章目录 前言优先级队列 PriorityQueue优先队列的模拟实现 堆堆的储存方式堆的创建建堆的时间复杂度堆的插入与删除 总结 前言 优先级队列 PriorityQueue 概念:对列是先进先出的的数据结构,但有些情况,数据可能带有优先级,一般出…

openssl3.2/test/certs - 002 - root cert variants: CA:false, key2, DN2, expired

文章目录 openssl3.2/test/certs - 002 - root cert variants: CA:false, key2, DN2, expired概述笔记END openssl3.2/test/certs - 002 - root cert variants: CA:false, key2, DN2, expired 概述 索引贴 openssl3.2 - 官方demo学习 - test - certs 笔记 –官方原始脚本 o…

Canvas-Editor 实现类似 Word 协同编辑

前言 对于word的协同编辑,已经构思很久了,但是没有找到合适的插件。今天推荐基于canvas/svg 的富文本编辑器 canvas-editor,能实现类似word的基础功能,如果后续有更好的,也会及时更新。 Canvas-Editor 效果图 官方文…

redis-exporter grafana面板配置

一、前言 关于使用tensuns自带的grafana监控模板,监控redis-exporter接口会有一些数据丢失的问题,需要自行修改一下grafana模板的json 二、修改模板 redis grafana模板id:17507 主要是针对cpu使用率和内存使用率做一个说明,因为…

Acwing-语法基础练习

目录 1. 非常基础的C (面向程序) 框架 2. 一些基础数据类型 3.变量的输入输出 4.ACWing题库-第1题&#xff1a;AB 5.四则运算(只整理一部分较难的) 6.数据类型转换 寒假自学用,记录Acwing题目。 语言&#xff1a;C 1. 非常基础的C (面向程序) 框架 #include <iostre…

hbase shell行键过滤正则匹配

hbase shell行键过滤正则匹配 在实际运维生产环境的过程中&#xff0c;经常遇到需要过滤rowkey包含部分字符的场景。以下列出可行的几种操作方式。 方法一&#xff1a;前缀过滤器字符匹配 # 匹配主键开头是abc的数据 hbase> scan xxxSpace:table1, {FILTER > "(…

STM32CubeMX教程26 FatFs 文件系统 - W25Q128读写

文章目录 1、准备材料2、实验目标3、实验流程3.0、前提知识3.1、CubeMX相关配置3.1.0、工程基本配置3.1.1、时钟树配置3.1.2、外设参数配置3.1.3、外设中断配置 3.2、生成代码3.2.0、配置Project Manager页面3.2.1、外设初始化调用流程3.2.2、外设中断调用流程3.2.3、添加其他必…

C#winform上位机开发学习笔记7-串口助手的波特率参数设置功能添加

1.功能描述 上位机与下位机进行通讯时需要用到波特率设置功能&#xff0c;以及尝试与下位机实体进行通讯。 2.代码部分 步骤1&#xff1a;串口开启按钮事件中添加代码 serialPort1.BaudRate Convert.ToInt32(comboBox14.Text, 10);//将十进制的文本转换为32位整型赋值给串…

揭秘真相!成都力寰璨泓科技有限公司抖音小店究竟是否可靠?

在互联网电商繁荣发展的今天&#xff0c;抖音小店作为新兴的电商平台&#xff0c;吸引了众多商家和消费者的目光。在这其中&#xff0c;成都力寰璨泓科技有限公司的抖音小店尤为引人注目。那么&#xff0c;这家公司在抖音小店的运营是否可靠呢&#xff1f;本文将为你揭开真相。…

Raspbian安装云台

Raspbian安装云台 1. 源由2. 选型3. 组装4. 调试4.1 python3-print问题4.2 python函数入参类型错误4.3 缺少mjpg-streamer可执行文件4.4 缺失编译头文件和库4.5 python库缺失4.6 图像无法显示&#xff0c;但libcamera-jpeg测试正常4.7 异常IOCTL报错4.8 Git问题 5. 效果5.1 WEB…

制作高端的电子杂志神器推荐

根据市场调查数据显示&#xff0c;越来越多的消费者开始青睐电子杂志这种阅读方式。相比传统纸质杂志&#xff0c;电子杂志具有更高的阅读体验、更便捷的分享和传播方式以及更环保的阅读方式。此外&#xff0c;越来越多的企业也开始重视电子杂志的宣传作用&#xff0c;将其作为…

安裝火狐和穀歌流覽器插件FoxyProxy管理海外動態IP代理

代理生態系統擁有大量有用的實用程式&#xff0c;使海外代理IP代理設置的使用變得簡單起來。其中一種類型叫做代理管理工具&#xff0c;像FoxyProxy就是該工具集比較受歡迎的。 本文將全面解析FoxyProxy擴展的功能和特性、Foxyproxy怎麼下載、以及如何在穀歌流覽器和火狐流覽器…

14、Kafka ------ kafka 核心API 之 流API(就是把一个主题的消息 导流 到另一个主题里面去)

目录 kafka 核心API 之 流APIKafka流API的作用&#xff1a;流API的核心API&#xff1a;使用流API编程的大致步骤如下&#xff1a;代码演示 流API 用法MessageStream 流API 代码演示消息从 test1主题 导流到 test2主题演示使用匿名内部类对消息进行处理Topology 拓扑结构 讲解 代…

前端Vue开发规范

为什么要有开发规范&#xff1a; 1.降低新成员融入团队的成本&#xff0c;同时也一定程度避免挖坑 2.提高开发效率、团队协作效率&#xff0c;降低沟通成本 3.实现高度统一的代码风格&#xff0c;方便review&#xff0c;另外可以提高项目的可维护性 4.规范是实现自动化的基础 5…

Linux之快速入门(CentOS 7)

文章目录 一、Linux目录结构二、常用命令2.1 切换用户2.2查看ip地址2.3 cd2.4 目录查看2.5 查看文件内容2.6 创建目录及文件2.72.82.93.0 一、Linux目录结构 目录作用/bin是 Binaries (二进制文件) 的缩写,这个目录存放着最经常使用的命令/dev是 Device(设备) 的缩写,该目录下存…

【办公类-22-01】20240123 UIBOT逐一提取CSDN质量分

背景需求&#xff1a; 最近每天传2份Python&#xff0c;发现平均分从73.5降到了72.7。网上搜索一下原因&#xff0c;发现每篇CSDN都有一个评分&#xff08;以下是查分网站&#xff09; https://www.csdn.net/qchttps://www.csdn.net/qc 但是一篇一篇查询&#xff0c;显然太繁…