`
Godlikeme
  • 浏览: 165454 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

db2v8 update嵌套子查询的问题

阅读更多
最近在作项目中发现了一个问题,以前对update了解不深,特将此问题总结如下:
数据库db2v8,隔离级别cs

在测试update语句的时候发现:

update A set a=1 where a=2;

update A set a=1 where a in(select a from A where a=2);

单个session执行,两者的结果是一样的。

在并发情况下发现一些不同:
多做点数据保证真正并发,比如50w,无索引更新100条。
第一种情况:
1:update A set a=1 where a=2;
2:update A set a=3 where a=2;
先后以1,2的顺序并发执行。
结果是1执行的结果,而后执行的因为先前已经修改了a 所以执行后更新的行为0;

第二种情况
3:update A set a=1 where a in(select a from A where a=2);
4:update A set a=3 where a in(select a from A where a=2);
先后以3,4的顺序并发执行。
结果是4执行的结果。原因是3执行后结果被4自行后结果覆盖。

分析其原因,update不带子查询情况下会根据查询条件会加行锁,保证数据一致性,其他update语句要等其事务提交才能读取改行数据。

update带子查询情况下,查询过程不加锁,查询结果返回给update时才加锁,相当于先select ,再更新的过程。此时别的session update也会查询到该条记录,最后等到3事务提交时执行就会覆盖掉之前的数据。



分享到:
评论

相关推荐

    DB2常用命令,DB2 v8数据库基础

    这些特性使得DB2 v8在处理大数据、并发访问和复杂查询方面有显著提升。例如,分区功能允许将大型表分散到多个物理设备上,以提高查询性能。 文档"03_DB2 V8数据库基础.doc"可能涵盖了DB2 v8的基础架构、安装步骤、...

    db2 v8 command reference

    根据给定的文件信息,我们可以深入探讨DB2 V8命令参考中的关键知识点,尤其是与DB2 V9.1 for z/OS相关的概念、命令解析以及权限管理等方面。 ### 关于DB2 V9.1 for z/OS DB2是IBM开发的一款关系型数据库管理系统...

    DB2 v8 Command Reference

    根据提供的文件信息,本文将对《DB2 v8 命令参考》中的部分关键知识点进行详细解析。此文档是IBM DB2 Universal Database Version 8 的命令参考手册,旨在为用户提供有关DB2 v8 中各个命令的具体用法、功能及注意...

    DB2 V8数据库基础大全

    《DB2 V8数据库基础大全》是一份详尽的DB2数据库学习资料,旨在帮助读者对DB2有全面深入的理解。DB2是IBM公司开发的一款高性能、企业级的关系型数据库管理系统,广泛应用于金融、电信、制造等多个行业。通过这份资料...

    DB2v8培训资料

    QS13_DB2v8_JDBC.pdf: JDBC(Java Database Connectivity)是Java平台上的数据库连接标准,这份资料可能讲解了如何使用JDBC驱动程序与DB2v8进行交互,包括连接、查询、事务管理等基本操作。 QS15_DB2v8_Application...

    DB2 V8数据库基础 (包含最全面的DB2操作指令介绍).doc

    DB2 V8数据库基础文档详尽地介绍了IBM的DB2数据库管理系统的核心概念、操作命令以及相关的工具使用。本文将深入探讨这些关键知识点。 首先,DB2是IBM开发的一款关系型数据库管理系统,它在企业级应用中广泛使用,...

    db2v8在aix下的安装

    在操作系统层面,DB2 V8 支持 AIX 的多个版本,每个版本都有特定的维护级别和 APAR(问题解决报告)需求。例如,AIX 4.3.3 需要维护级别 9 或 10,而 AIX 5.1.0 和 5.2.0 需要特定的维护级别和 APAR。你可以使用 `...

    DB2 V8 至v9迁移文档

    【DB2 V8 至V9迁移文档】是关于如何从IBM DB2数据库的V8版本升级到V9版本的详细指南。这份文档由SAP AG编写,旨在为用户提供了全面的升级步骤,确保在系统层面和应用层面上的顺利过渡。 在进行DB2数据库的迁移时,...

    DB2v8_Family

    DB2 v8设计的核心理念之一是能够最大化地利用系统的所有资源,无论是在单一查询内还是跨多个查询,无论资源类型或数量。这包括I/O带宽、主内存、缓存、CPU、通信带宽等。这种设计确保了DB2能够适应各种硬件架构,如...

    DB2 V8数据库基础

    理解SQL的子查询、联接操作和聚合函数的用法,对于使用DB2 V8至关重要。 4. **数据库对象管理**:掌握如何创建和管理数据库对象,如表格、视图、索引、存储过程、触发器。了解DDL语句的使用,以及如何通过DB2命令行...

    DB2 V8数据库基础 V1.0.20060426.doc

    ### DB2 V8数据库基础知识概览 #### 一、DB2概念 **1.1 版本** - **1.1.1 DB2产品的级别**:DB2有不同的产品级别,包括标准版、企业版等,每个级别的功能和特性有所不同。 - **1.1.2 可以连接到DB2数据库的产品**...

    DB2 rumtiem client v8 版本

    7. **性能监控和管理工具**:提供了一套全面的管理工具,如db2top,用于实时监控数据库性能,帮助管理员识别和解决问题。 8. **应用兼容性**:此版本的Runtime Client旨在与多个DB2服务器版本兼容,允许客户机与...

    IBM DB2 V8 简体中文官方文档.part1(共3个分卷 20多本高清PDF版)

    《DB2 Data Links Manager 快速入门》(147页) 《管理及开发 GUI 工具指南》(107页) 《应用程序开发指南:构建和运行程序》(359页) 《IBM® DB2 Connect™用户指南》(245页) 《IBM® DB2 Connect™个人版快速...

    db2 v8 9 参看手册

    DB2 V8 9 参考手册是一份重要的IT资源,专为IBM的数据库管理系统DB2 V8.9提供详尽的技术指导。这份手册涵盖了DB2版本8.9的各个方面,包括安装、配置、管理、优化以及问题排查等关键知识点。DB2是由IBM开发的关系型...

    DB2 V8 UNICODE reference 大全

    DB2 V8 UNICODE reference 大全

    DB2使用9.7.3恢复v8的数据库备份

    - 调整`LOCKLIST`值的方法如下:`db2update dbcfg for TW2011 using LOCKLIST 10240 immediate`。需要注意的是,在设置为`immediate`时,如果`LOCKLIST`的模式为`MANUAL`,则需要同时指定`MAXLOCKS`的值。 3. **...

    DB2_V8数据库基础

    DB2_V8数据库基础 DB2是IBM公司开发的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。DB2 V8是其第八个主要版本,发布于2005年,提供了许多改进和新特性,旨在提升性能、可扩展性和安全性。在深入探讨...

    DB2 V8 - Introducing QMF

    综上所述,DB2 V8 中引入的 QMF 是一个功能强大的查询管理工具,它不仅支持多种查询方式,还提供了高性能选项和 Visionary 等高级特性,可以帮助企业有效地管理和分析大量数据,从而提高业务效率和决策质量。

    IBM发布支持Linux的DB2 V8.pdf

    【IBM发布支持Linux的DB2 V8】 IBM的DB2通用数据库V8是针对Linux、Unix和Windows平台推出的重要数据库软件。这个版本的DB2在IBM的On-Demand电子商务策略中扮演了关键角色,因为它简化了企业维护数据库系统的任务,...

Global site tag (gtag.js) - Google Analytics