索引视图导致死锁

简介: 背景:  开始并不在意索引视图会导致死锁。问题:  出现死锁,update t1 表尽然发现会去锁t2表从而导致死锁。原因:  是因为索引视图才会导致死锁问题。单从update的执行计划也能看出问题例子:  create table t1(id int primary key,a ...

背景:

  开始并不在意索引视图会导致死锁。

问题:

  出现死锁,update t1 表尽然发现会去锁t2表从而导致死锁。

原因:

  是因为索引视图才会导致死锁问题。单从update的执行计划也能看出问题

例子:

  

create table t1(id int primary key,a int)
create table t2(id int primary key,a int)
go

CREATE VIEW [dbo].[DLV_AllProductItems]
WITH SCHEMABINDING
AS
SELECT       a.id,a.a,b.id as idb,b.a as ab
FROM            dbo.t1 a
	inner join dbo.t2 b on a.id = b.id



GO

create unique clustered index ix on t(id)
update t1 set a=1 where id =1

  

目录
相关文章
|
9月前
|
存储 数据库 索引
事务、视图和索引
事务、视图和索引
|
7月前
|
SQL Oracle 关系型数据库
加索引导致表被锁的原因及处理方法
加索引导致表被锁的原因及处理方法
632 0
|
9月前
|
SQL 存储 关系型数据库
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化
204 1
|
SQL 运维 安全
MySQL索引及视图
MySQL索引及视图
133 0
|
SQL 关系型数据库 MySQL
表索引——隐藏索引和删除索引
前言 MySQL 8开始支持隐藏索引。隐藏索引提供了更人性化的数据库操作。
|
9月前
|
关系型数据库 MySQL 测试技术
MySQL 并发插入唯一键相邻数据和更新数据导致死锁
一 前言死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。二 案例分析2.1 业务场景业务上的主要逻辑:首先执行插入数据,如果插入成功,则提交。如果插入的时候报唯一键冲突,则执行更新...
312 0
MySQL 并发插入唯一键相邻数据和更新数据导致死锁
|
存储 关系型数据库 MySQL
InnoDB表聚集索引层高什么时候发生变化(1)
InnoDB表聚集索引层高什么时候发生变化
118 0
|
存储 关系型数据库 MySQL
InnoDB表聚集索引层高什么时候发生变化(2)
InnoDB表聚集索引层高什么时候发生变化
|
存储 关系型数据库 测试技术