• Sqlserver事务和锁🔒


    事务:事务是包含一组数据库操作的逻辑工作单元,用于保证数据的一致性和可恢复性。

    事务的分类:

          1.自动提交事务:在sqlserver中,每条sql语句都被看作是一个事务,当执行完成后,数据库引擎都会自动执行提交事务或回滚事务。

          2.显示事务:使用begin transaction语句标识事务的开始,使用commit或rollback语句标识事务的结束。

          3.隐式事务

          4.批处理级事务

    事务保存点 save transaction 语句 


     保存点定义了事务中的一个位置,可以在rollback的时候讲数据回滚到保存点的位置,从而实现部分回滚事务的功能,避免不必要的系统资源损耗。

    例:

    begin transaction test
    save transaction a
    insert into shop values('111');
    rollback transaction a
    insert into shop values('222');
    commit transaction test

    嵌套事务


     sqlserver支持嵌套事务

    事务的隔离级别 


     read uncommitted:指定语句可以读取已由其他事物修改但尚未提交的行,在这种事务隔离级别下,语句可以读取到未提交的修改,这种读取叫做脏读,是限制最少的级别。

    read committed:指定语句不能读取其他事物正在修改但尚未提交的行,这可以避免脏读,sqlserver的默认选项。

    repeatable read:指定语句不能读取其他事物正在修改但尚未提交的行,而且其他事物也不能修改当前事务在提交前所读取的数据。

    snapshot:指定事务在开始时,就获得了已经提交数据的快照,因此当前事务只能看到在事务开始之前对数据所做的修改。

    serializable:提供最高级别的事务隔离。当事务处在这个级别时,一个查询只能看到事务开始之前提交的数据,而无法看到脏数据或事务执行中其他并行事务所修改的数据。在此级别下,事务就好像被一个一个地串行执行,而不是并发执行多个事务。

    set transaction isolation levelread uncommitted |
       read committed |
       repeatable read |
       snapshot |
       serializable

    锁的分类 


    按系统角度分为:共享锁、独占锁(排他锁)、更新锁、意向锁、架构锁、大容量更新锁。

    从并发控制手段上分为:乐观锁、悲观锁。

    https://www.cnblogs.com/rasion/archive/2010/03/29/1699600.html

    锁的兼容性 


      

    锁的粒度和结构层次


     数据库引擎具有多粒度锁定,允许一个事务锁定不同类型的资源。锁定在较小的粒度(例如行)可以提高并发度,但开销大,因为锁定的范围越小,需要的锁就越多(锁定了许多行,就需要持有更多的锁);锁定在较大的粒度(例如表)会降低并发度,但是消耗较低,   因为锁定的范围大,需要的锁就越小(锁定了表,限制了其他事物对表的访问)。 

     数据库引擎通常必须获取多粒度级别上的锁才能完整地保护资源。这种多粒度级别上的锁称为锁层次结构

    查看锁的活动情况 


     1.使用sqlserver时间探查器

    2.使用windows管理工具->性能 ,系统监视器

    3.系统视图:sys.dm_tran_locks

    死锁产生的原因以及如何避免 


      https://www.cnblogs.com/wangweitr/p/7158023.html

    参考:《sqlserver性能监测与优化》

  • 相关阅读:
    各种工具的使用 tricks
    各种工具的使用 tricks
    全栈工程师之路(二)—— JavaScript(网页前端脚本语言)
    全栈工程师之路(二)—— JavaScript(网页前端脚本语言)
    CSS(网页样式语言)基础
    CSS(网页样式语言)基础
    辨异 —— 机器学习概念辨异、模型理解
    辨异 —— 机器学习概念辨异、模型理解
    程序猿/媛段子
    tabhost中activity跳转动画不显示的解决办法
  • 原文地址:https://www.cnblogs.com/Linky008/p/10808966.html
Copyright © 2020-2023  润新知