随笔分类 -  mssql

摘要:六、各种事务隔离级别发生的影响 修改数据的用户会影响同时读取或修改相同数据的其他用户。即这些用户可以并发访问数据。如果数据存储系统没有并发控制,则用户可能会看到以下负面影响: · 未提交的依赖关系(脏读) · 不一致的分析(不可重复读) · 幻读 (一)脏读: 例:张某正在执行某项业务,如下: 则李 阅读全文
posted @ 2018-05-11 17:25 littlewrong 阅读(294) 评论(0) 推荐(0) 编辑
摘要:五、锁与事务隔离级别 事务隔离级别简单的说,就是当激活事务时,控制事务内因SQL语句产生的锁定需要保留多入,影响范围多大,以防止多人访问时,在事务内发生数据查询的错误。设置事务隔离级别将影响整条连接。 SQL Server 数据库引擎支持所有这些隔离级别: · 未提交读(隔离事务的最低级别,只能保证 阅读全文
posted @ 2018-05-11 17:24 littlewrong 阅读(416) 评论(0) 推荐(0) 编辑
摘要:二、完整的锁兼容性矩阵(见下图) 对上图的是代码说明:见下图。 三、下表列出了数据库引擎可以锁定的资源。 名称 资源 缩写 编码 呈现锁定时,描述该资源的方式 说明 数据行 RID RID 9 文件编号:分页编号:Slot编号 用于锁定堆中的单个行的行标识符。 索引键 KEY KEY 7 6字节哈希 阅读全文
posted @ 2018-05-11 17:23 littlewrong 阅读(607) 评论(0) 推荐(0) 编辑
摘要:锁定:通俗的讲就是加锁。锁定是 Microsoft SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制。 定义:当有事务操作时,数据库引擎会要求不同类型的锁定,如相关数据行、数据页或是整个数据表,当锁定运行时,会阻止其他事务对已经锁定的数据行、数据页或数据表进行操作。 阅读全文
posted @ 2018-05-11 17:21 littlewrong 阅读(416) 评论(0) 推荐(0) 编辑
摘要:这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表)。waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻塞能不能自动消失。 5种常见的阻塞类型 下面详细介绍这些类型产生的原因 阅读全文
posted @ 2018-05-01 21:36 littlewrong 阅读(738) 评论(0) 推荐(0) 编辑
摘要:众所周知,SQL Server事务隔离级别是为了保证在并发事务处理环境下的数据完整性,准确性,一致性的一种机制。在SQL Server中一共有五种事务隔离级别,分别为:READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SNAPSHOT,SERIALIZA 阅读全文
posted @ 2018-04-26 16:47 littlewrong 阅读(419) 评论(0) 推荐(0) 编辑
摘要:控制到 Transact-SQL 的连接发出的 SQL Server 语句的锁定行为和行版本控制行为。 TRANSACT-SQL 语法约定 语法 参数 READ UNCOMMITTED 指定语句可以读取已由其他事务修改但尚未提交的行。 在 READ UNCOMMITTED 级别运行的事务,不会发出共 阅读全文
posted @ 2018-04-26 15:41 littlewrong 阅读(7190) 评论(0) 推荐(0) 编辑
摘要:由于本文是个长篇技术文章,涉及到很多算法和数据结构知识,你尽可以慢慢读。有些概念比较难懂,你可以跳过,不影响理解整体内容。 这篇文章大约分为3个部分: 底层和上层数据库组件概况 查询优化过程概况 事务和缓冲池管理概况 回到基础 很久很久以前(在一个遥远而又遥远的星系……),开发者必须确切地知道他们的 阅读全文
posted @ 2018-04-24 11:45 littlewrong 阅读(405) 评论(0) 推荐(0) 编辑
摘要:B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关 阅读全文
posted @ 2018-04-24 10:26 littlewrong 阅读(563) 评论(0) 推荐(0) 编辑
摘要:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。 为表设 阅读全文
posted @ 2018-04-24 10:14 littlewrong 阅读(369) 评论(0) 推荐(0) 编辑
摘要:2012以后提供了一种不同于传统B树结构的索引类型,就是内存列存储索引。这种索引应用了一种基于列的存储模式,也是一种新的查询执行的批处理模式,并且为特定的负载提供了巨大的性能提升。它是如何构建?如何工作?又是为什么能对性能有如此大的提升,接下来我们用简明的描述和详尽的示例来解释说明。 那么列存储索引 阅读全文
posted @ 2018-04-19 14:46 littlewrong 阅读(420) 评论(0) 推荐(0) 编辑
摘要:当大家发现数据库查询性能很慢的时候,大家都会想到加索引来优化数据库查询性能, 但是面对一个复杂的SQL语句,找到一个优化的索引组合对人脑来讲,真的不是一件很简单的事。 好在SQLSERVER提供了两种“自动”功能,给你建议,该怎么调整索引 第一种是使用DMV 第二种是使用DTA (database 阅读全文
posted @ 2018-03-30 15:58 littlewrong 阅读(6954) 评论(0) 推荐(1) 编辑
摘要:USE MasterGO declare @spid int; select @spid = 419--null:all ; ;WITH DATA(spid,blockRelationship,blocked,spidLevel,hostname,program_name,loginame,logi 阅读全文
posted @ 2018-03-23 09:42 littlewrong 阅读(268) 评论(0) 推荐(0) 编辑
摘要:简单查询死锁,如下四步可以轻松解决: 第一步:查询死锁语句 1: 条件是 blocked <> 0 select dbid,* from sys.sysprocesseswhere 1=1and spid >50and blocked <> 0--and spid= 62 查询结果如下图所示: 以上 阅读全文
posted @ 2018-03-23 09:41 littlewrong 阅读(534) 评论(0) 推荐(0) 编辑
摘要:--SQLSERVER CXPACKET 等待 2013-6-11 2 --联机丛书: 3 --当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度 4 5 6 7 --CXPACKET 解释: 8 -- 9 --当为SQL查询创建一个并行操作时,会有多个线程 阅读全文
posted @ 2017-12-12 09:28 littlewrong 阅读(337) 评论(0) 推荐(0) 编辑
摘要:在分析SQL server 性能的时候你可能经常看到 PAGELATCH和PAGEIOLATCH。比方说 的输出里面就有Latch的有关信息: 那么什么是PAGELATCH和PAGEIOLATCH呢? 先说什么Latch。 Latch是SQL server内部用来同步资源访问的一个数据结构,和操作系 阅读全文
posted @ 2017-12-12 09:07 littlewrong 阅读(269) 评论(0) 推荐(0) 编辑
摘要:在 SQL Server 2005 中,可以通过将非键列添加到非聚集索引的叶级别来扩展非聚集索引的功能。通过包含非键列,可以创建覆盖更多查询的非聚集索引。这是因为非键列具有下列优点: 它们可以是不允许作为索引键列的数据类型。 在计算索引键列数或索引键大小时,数据库引擎 不考虑它们。 当查询中的所有列 阅读全文
posted @ 2017-04-29 11:36 littlewrong 阅读(2387) 评论(0) 推荐(0) 编辑
摘要:全程加密技术(Always Encrypted) 全程加密技术(Always Encrypted)支持在SQL Server中保持数据加密,只有调用SQL Server的应用才能访问加密数据。该功能支持客户端应用所有者控制保密数据,指定哪些人有权限访问。SQL Server 2016通过验证加密密钥 阅读全文
posted @ 2016-12-24 11:13 littlewrong 阅读(2055) 评论(0) 推荐(0) 编辑
摘要:关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份。让我帮他解决一下,不然他要赔偿客户很多钱。 SQL Serve 阅读全文
posted @ 2016-04-10 18:37 littlewrong 阅读(569) 评论(0) 推荐(0) 编辑
摘要:数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大。阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象。 但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的 阅读全文
posted @ 2016-03-21 23:57 littlewrong 阅读(377) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示