`
vanadiumlin
  • 浏览: 504527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于:为什么简单的一个select查询都要加上事务控制

SQL 
阅读更多

看书上的例子 为什么简单的一个select查询都要加上事务控制 是不是没有必要?
Session s = factory.openSession();
Transaction tx = s.beginTransaction();
List auctions = s.createQuery("select ...").list();
tx.commit();
s.close();

=========================================================
下面援引robbin的解释大家大概就明白了
如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性;
如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性,否则,在前条SQL查询之后,后条SQL查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持。

分享到:
评论

相关推荐

    Oracle中的用户操作、赋权、事务、锁、索引SQL语句.doc

    - **排他锁(EXCLUSIVE LOCK)**:一次只能由一个事务持有,其他任何事务都无法再获取该锁。 - **共享锁(SHARED LOCK)**:多个事务可以同时持有共享锁,但不能与排他锁共存。 ##### 查看锁信息 可以使用`V$LOCK`...

    简单的查询语言

    ### 简单查询语言概览 #### 一、结构化查询语言的分类 SQL(Structured Query Language),即结构化查询语言,是一种专门用于管理关系型数据库的标准语言。按照功能不同,可以将其大致分为以下几类: 1. **数据...

    java-Oracle概要.docx

    * 例:一个月使用了 250 小时,每种资费标准下应缴纳的费用(首次实现) select base_cost + (250 - base_duration)*unit_cost fee from cost; 空值 null 的处理: * 未知的,没写数 * 空值不等于 0 * 空值不等于...

    第5章-SQL结构化查询语言.doc

    - `FIRST(expr)`、`LAST(expr)`:获取记录集中第一个或最后一个记录的指定字段值。 - `MIN(expr)`、`MAX(expr)`:获取指定列的最小值和最大值。 ##### 5.2.3 查询中的查询项 查询项即查询结果中的列标题,一般包括...

    oracle 学习笔记

    Oracle数据库是一类关系型数据库管理系统(RDBMS),由美国Oracle公司开发。...学习Oracle数据库和SQL知识是一个逐步深入的过程,从最基础的数据库概念到高级的事务管理,每个知识点都需要认真掌握和实践。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     事务控制语言(Transactional Control Language,TCL),用于维护数据的一致性,包括COMMIT(提交事务)、ROLLBACK(回滚事务)和SAVEPOINT(设置保存点)3条语句 二、 Oracle的数据类型 类型 参数 描述 字符类型...

    数据库复习提纲

    - 外码:一个表中的属性或属性组,在另一个表中作为主码出现。 - 键:候选码中任意一个都可以作为主键使用。 - **INF、2NF、3NF、BCNF**: - INF(第一范式):消除重复组。 - 2NF(第二范式):消除非主属性对...

    数据库操作语句大全(sql)

    Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引...

    (一)Oracle.md

    - **实例与数据库的区别**:Oracle 数据库通常由一个或多个实例组成,每个实例都有其独立的内存区域和进程,而数据库则存储在物理磁盘上。 - **客户端与服务端架构**:Oracle 采用客户端/服务端架构,客户端用于发送...

    java面试题

    spring和Hibernate继承后,定义事务管理特性的时候查询为什么要定义为read-only? 答:因为添加、删除和更新都涉及到了数据库的修改,而查询并未涉及到数据库修改,所以只需要定义只读,这样可以提高效率,进行更加...

    深入浅出 SQL (中文版).part1

    4 聪明的表设计:为什么要规范化?  两张鱼的表  表都是关于关系的  原子性数据  原子性数据和你的表  原子性数据的规则  规范化的原因  规范化表的优点  小丑不太标准  达成1NF的半路上  主键规则  朝...

    Oracle表的管理

    保存点是事务控制的一个重要组成部分,它允许我们在事务处理过程中设置一个标记,以便在出现问题时能够回滚到这个标记点。 **保存点设置** 保存点可以通过`SAVEPOINT`语句来创建,例如: ```sql SAVEPOINT my_...

    架构师系列书籍--Redis实战

    - **简单事务控制**:使用`MULTI`命令开始一个事务,使用`EXEC`命令提交事务。 - **取消事务**:如果在事务过程中遇到错误,可以通过`DISCARD`命令来取消整个事务。 - **乐观锁复杂事务**:Redis本身不支持复杂的...

    经典SQL语句大全

    Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引...

    SQL命令和常用语句大全【经典】.

    6. **事务控制**: - `COMMIT`:提交事务,保存所有更改。 - `ROLLBACK`:回滚事务,撤销所有更改。 - `SET TRANSACTION`:定义事务特性,如隔离级别。 7. **程序化SQL**: - `DECLARE`:声明变量,如局部变量`...

    DB2 SQL介绍内容

    - 视图:虚拟表,基于一个或多个表的查询结果,可以简化复杂查询并提供数据安全性。 - 游标:允许逐行处理查询结果,常用于循环处理数据的程序中。 - 存储过程和函数:预编译的SQL代码集合,可以封装复杂的业务...

Global site tag (gtag.js) - Google Analytics