当前位置: 首页 > news >正文

深圳网站设计灵点网络品牌网站建设后备案多少钱

深圳网站设计灵点网络品牌,网站建设后备案多少钱,温州专业网站制作设计,汽车网站建设论文文章目录 任务二十二 使用JDBC访问openGauss数据库任务目标实施步骤一、查看和设置隔离级别1.查看系统默认的隔离级别2.设置系统默认的隔离级别3.查看当前会话的隔离级别4.设置当前会话的隔离级别5.设置当前事务的隔离级别 二、读提交隔离级别测试三、可重复读隔离级别测试 任务…

文章目录

  • 任务二十二 使用JDBC访问openGauss数据库
    • 任务目标
    • 实施步骤
      • 一、查看和设置隔离级别
        • 1.查看系统默认的隔离级别
        • 2.设置系统默认的隔离级别
        • 3.查看当前会话的隔离级别
        • 4.设置当前会话的隔离级别
        • 5.设置当前事务的隔离级别
      • 二、读提交隔离级别测试
      • 三、可重复读隔离级别测试

任务二十二 使用JDBC访问openGauss数据库

任务目标

了解数据库隔离级别的含义,并对其进行测试。

实施步骤

一、查看和设置隔离级别

1.查看系统默认的隔离级别

使用Linux用户omm,打开一个Linux终端窗口,执行如下的命令:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
show default_transaction_isolation;
\q
2.设置系统默认的隔离级别

使用Linux vi编辑器,修改openGauss数据库管理系统的启动参数文件中的参数default_transaction_isolation,并reload数据库实例使参数生效。过程如下:
在这里插入图片描述
还记我们实验二安装openGauss数据库时用到的cluster_config.xml文件吗?
这个文件是我们自己配置的,指明了数据库的安装的具体位置,笔者安装的位置为:/opt/huawei/data/dn/postgresql.conf。

vi /opt/huawei/install/data/dn/postgresql.conf

将下面这行:

#default_transaction_isolation = 'read committed'

修改为:

default_transaction_isolation = 'REPEATABLE READ'

不需要重新启动数据库,执行下面的命令reload参数文件,让参数生效:

gsql -d postgres -p 26000 -r
select pg_reload_conf();
\q 

执行下面的命令,再次查看系统当前的隔离级别:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
show default_transaction_isolation;
\q

我们发现,openGauss数据库的隔离级别已经被修改为REPEATABLE READ
也可以执行下面的命令来修改系统的隔离级别。直接执行下面的命令,可以一步完成修改参数文件并reload的操作:

gs_guc reload -N all -I all -c "default_transaction_isolation = 'read committed'"
gsql -d postgres -p 26000 -r
show default_transaction_isolation;
\q 

在这里插入图片描述

3.查看当前会话的隔离级别

执行下面的命令和SQL语句,查看当前会话的隔离级别(请注意,有两种查看的方法):

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
show transaction_isolation;
SELECT current_setting('transaction_isolation');
\q
4.设置当前会话的隔离级别

执行下面的命令和SQL语句,设置并查看当前会话的隔离级别:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
-- 下面的语句设置会话的隔离级别为REPEATABLE READ
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL REPEATABLE READ;
show transaction_isolation;
\q

我们发现,会话的隔离级别已经被修改为REPEATABLE READ
退出当前会话之后,再次登录到数据库(新会话),我们发现该会话的隔离级别还是数据库原来的读提交隔离级别:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
show transaction_isolation;
\q

也就是说,在会话级修改数据库的隔离级别,只影响当前的会话

5.设置当前事务的隔离级别

执行下面的命令和SQL语句,设置并查看当前事务的隔离级别:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
-- 显示会话当前隔离级别
show transaction_isolation;
-- 开始一个新的事务,并设置新事务的隔离级别为REPEATABLE READ
START TRANSACTION ISOLATION LEVEL REPEATABLE READ; 
-- 显示事务当前隔离级别
show transaction_isolation;
-- 结束当前事务
commit;
-- 再次显示会话当前隔离级别
show transaction_isolation;
\q

上面的实验显示,登录openGauss DBMS之后,会话的隔离级别是数据库系统默认的隔离级别READ COMMITTED,在该会话中开始的新事务也继承了会话的隔离级别READ COMMITTED我们可以临时改变事务的隔离级别为REPEATABLE READ,当事务结束(本例为提交,也可以是回滚)后,新的事务又会恢复为原来的隔离级别。

二、读提交隔离级别测试

默认情况下openGauss会话的隔离级别是读提交,可以通过下面的实验来验证这一点。本实验需要在手动事务管理环境进行。
使用Linux用户omm,打开一个Linux终端窗口(将该窗口命名为窗口1),执行如下的命令:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\set AUTOCOMMIT off 
select * from instructor;
select sum(salary) from instructor;

使用Linux用户omm,打开另外一个Linux终端窗口(将该窗口命名为窗口2),执行如下的命令:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\set AUTOCOMMIT off 
select * from instructor;
select sum(salary) from instructor;

我们可以看到,在窗口1和窗口2的两个openGauss会话中,看到的表instructor的数据是一样的,因此教师的工资总和也是一样的。
继续在窗口2中执行如下的命令,插入一个新的教师记录后没有进行提交,直接查询插人新记录后的工资总和:

insert into instructor values('88888','Comp. Sci.','temp_user',60000);
select * from instructor;
select sum(salary) from instructor;

在这里插入图片描述

可以看到,在窗口2的会话中为表instructor插人一行数据后虽然暂时不提交,但在窗口2的会话中能看到这条记录,统计工资总和时也会加上这行的值(已经变成了958000)。
转到窗口1,执行如下的命令,再次查看表instructor的数据和教师的工资总和:

select * from instructor;
select sum(salary) from instructor;

在这里插入图片描述
目前,openGauss数据库会话的隔离级别是读提交,由于刚才在窗口2中插入的新行还没有提交,因此在这个会话中暂时还看不到表instructor数据的变化。
再次转到窗口2,执行如下的命令,提交刚才新插入的行:

commit;
select * from instructor;
select sum(salary) from instructor;

重新回到窗口1,执行如下命令,再次查看表instructor的数据和教师的工资总和:

select * from instructor;
select sum(salary) from instructor;

在这里插入图片描述
因为在窗口2中将刚才插人的新行进行了事务提交,窗口1的openGauss会话的数据库隔离级别是读提交,因此在窗口1中也可以看到这一已经完成事务提交的新插入行了。
最后做实验清理工作,以便继续下一个测试。首先随便在窗口1或者窗口2中,清除刚才添加的行:

delete from instructor where id='88888';
commit;

然后分别在窗口1和窗口2中执行下面的g8q1退出命令:

\q

三、可重复读隔离级别测试

使用Linux用户omm,打开一个Linux终端窗口(将该窗口命名为窗口1),执行如下的命令,设置新事务的隔离级别为可重复读,并开始这个事务:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
-- 设置新事务的隔离级别为可重复读
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
select * from instructor;
select sum(salary) from instructor;

使用Linux用户omm,打开另外一个Linux终端窗口(将该窗口命名为窗口2),执行如下的命令:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\set AUTOCOMMIT off
insert into instructor values('88888','Comp. Sci.','temp_user',60000);
commit;
select * from instructor;
select sum(salary) from instructor;

上面的代码显示,在窗口2的会话中为表instructor插人了一行新记录,并马上进行了事务提交。
在这里插入图片描述

转到窗口1,执行如下的命令:

select * from instructor;
select sum(salary) from instructor;

在这里插入图片描述
我们发现,虽然在窗口2的openGauss会话中将插人表instructor的行提交了,但是因为窗口1openGauss会话的隔离级别是可重复读,故在窗口1的openGauss会话中只能看到事务开始时的数据库数据快照,事务开始之后其他会话对表instructor的修改,在窗口1的openGauss会话中是看不到的。
对于一些报表应用,可重复读隔离级别特别重要,使用可重复读可以使报表结果总是一致的。可重复读隔离级别的实现,并不比读提交昂贵,不用担心因为采用可重复读而造成的性能问题。最后做任务的清理工作,以便继续下一个任务。首先在窗口2中清除刚才添加的行:

delete from instructor where id='88888';
commit;

然后分别在窗口1和窗口2执行gsql退出命令:

\q
http://www.yayakq.cn/news/739139/

相关文章:

  • 网站不备案可以做微信小程序么家教中介网站怎么做学员引流
  • 哈尔滨建设局网站合肥哪里做网站
  • 个人免费自助建站网站永久免费网站模板
  • 搭建网站的架构南阳网站制作怎么样
  • 做网站的成本有多少果麦传媒的网站怎么做的
  • 昆山网站建设设计网络营销的常见方式有哪些
  • 吉林网站建设方案什么语言做网站
  • 网站建设一般要多钱合肥制作网站单位有哪些
  • 微网站是什么wordpress 新安装 慢
  • 如何网站wix wordpress
  • 通讯录管理网站建设网站建设国际标准
  • 甜蜜高端定制网站wordpress的seo优化
  • 网站架构需求wordpress两步验证码
  • 沧州网站建设专业的公司4000-262-泰安网络公司推荐
  • 网站网站开发成本淮安做网站需要多少钱
  • 西安农产品网站建设青岛网络工程优化
  • 怎么弄免费的空间做网站浙江网站建设实验心得
  • 给网站权限h5长图怎么做
  • 即墨区建设局网站扬州室内设计公司排名
  • 手机网站制作要求标准系统集成项目管理
  • 攀枝花 网站建设个人网站备案麻烦
  • 教你如何建设网站阿里去建设工程材料信息价查什么网站
  • 我的世界怎么自己做皮肤并上传网站做网站电话销售说辞
  • 网站浮窗制作网页美工设计课程
  • 网站设计模板 英文翻译长沙网站运营
  • 自己做网站图片存在哪里网络服务器设备
  • 手机网站建设的整体流程网络营销的方式有几种
  • 电子商务网站建设与管理试题答案江阴建设网站
  • 平顶山做网站公司培训视频网站
  • 大型网站seo课程免费的行情网站app大全下载