前言 对于上述锁其实是一个老生常谈的话题了,但是我们是否能够很明确的知道在什么情况下会存在上述各种锁类型呢,本节作为SQL Server系列末篇我们 来详细讲解下. Range-Lock 上述关于RangeS-U.RangeS-S.RnageX-X以及还有RangeI-N这四种锁属于范围锁(Range-Lock)范畴.那么在什么情况下会存在范围锁呢,当在SERIALIZABLE最高隔离级别时范围锁将会被用到,这也就意味着直到事务开启到结束查询出的结果集是一致的以此来防止幻影.在该隔离级别中锁定的…
SQL Server数据恢复准备之TRUNCATE TABLE理解 转自:https://blog.51cto.com/aimax/2142553 易语随风去关注0人评论6717人阅读2018-07-14 17:00:36   当truncate table发生时,如何进行恢复,相信大部分人都会选择通过还原备份到truncate table前,然后将数据重新导入正式表中. 那么在SQL Server中是不是真的只有这种方法呢,当然不是,这也是本文即将介绍的内容,前提条件是SQL Server完整…
SQL Server中的约束用来确保系统的完整性.一般约束可以分为:主键约束外键约束检查约束默认约束唯一约束非空约束 但是一般我们需要特别注意前三种约束:主键约束,一就是说跟你系统的实体有很大的关系,它是用来确保实体的完整性的.要求一个表只能有一个实体,用经验来说就是不能有表中表存在.是不是跟第一范式的概念很相似?相似就对了,一般做到一个表一个实体的话也就满足了第一范式外键约束外键约束是来确保引用的完整性.也就是说你的系统中每个外间必须跟一个实体(主键约束)对应起来,而不能随意的乱搞关系.这个主…
一.基本单位"页"     SQL Server是用8KB的页来存储数据.物理I/O操作也是在页级执行.页的种类有很多,具体参考(MSDN).我们关注更多的是数据页的结构,包括三部分:页头(96bytes).数据区(数据行和可用空间)以及行偏移数组(槽,最少是7bytes): 为什么数据页的大小是8k,这有什么优缺点,有两篇文章解释的很好(数据页结构,坏的一面).总结下, a. 数据区大小 =(8192 - 页头96bytes+偏移数组7byte) = 8053bytes,这是一个页能…
一.set statistics time on的作用 显示分析.编译和执行各语句所需的毫秒数. 二.语法 SET STATISTICS TIME { ON | OFF } 注释 1.当 SET STATISTICS TIME 为 ON 时,显示语句的时间统计.一旦执行了上述命令,在整个会话期间,时间统计一直保持启用状态,直到执行 OFF 操作. 2.为 OFF 时,不显示时间统计. 2.SET STATISTICS TIME 的设置是在执行或运行时设置,而不是在分析时设置. 三.set sta…
一.存储结构 在SQL Server中,有许多不同的可用排列规则选项. 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D").因为所有内容都表示为数字,所以处理起来速度最快,遗憾的是,它并不总是如人们所想象,在WHERE子句中进行比较时,使用该选项会造成严重的混乱. 字典顺序:这种排序方式与在字典中看到的排序方式一样,但是少有不同,可以设置大量不同的额外选项来决定是否区分大小写.音调和字符集. 1.平衡树(B-树) 平衡树或B-树仅是提供了一种以…
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(理论篇) SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域.DNS服务器和Windows故障转移群集(准备工作) SQL Server ->> 高可用与灾难恢复(H…
什么是事务? 事务是一组原子性的SQL操作,所有操作必须全部成功完成,如果其中有任何一个操作因为崩溃或其他原因无法执行,那么所有的操作都不会被执行.也就是说,事务内的操作,要么全部执行成功,要么全部执行失败. 事务的结束有两种,当事务中的所有操作全部成功执行时,事务提交.如果其中一个操作失败,将发生回滚操作,撤消之前到事务开始时的所有操作. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. 事务的特性 一个运行良好的事务处理系统,还需要具备四个特性:原子性(Atomicity).一致性…
一般用法:PatIndex('%AAA%',‘BBBBBBBB’) 上句的意思是查找AAA在BBBBBBBB中的位置,从1开始计算,如果没有的话则返回0 其中%AAA%的用法和 SQL语句中like的用法是一致的 %AAA意思是开头不管是什么,后面只要跟着AAA就可以,就立马返回其位置,不在做检查. AAA%意思是以AAA开头,后面不管是什么,就立马返回其位置,不在做检查. 其中 PatIndex里面的第一个参数可以带入正则表达式…
建表插入测试数据A> create table test(id int ,num int) ;Query OK, 0 rows affected (0.53 sec) A> insert into test values(1,1);Query OK, 1 row affected (0.01 sec) A> insert into test values(2,2);Query OK, 1 row affected (0.00 sec) A> insert into test val…