背景:
開始并不在意索引視圖會導緻死鎖。
問題:
出現死鎖,update t1 表盡然發現會去鎖t2表進而導緻死鎖。
原因:
是因為索引視圖才會導緻死鎖問題。單從update的執行計劃也能看出問題
例子:
<code>create</code> <code>table</code> <code>t1(id </code><code>int</code> <code>primary</code> <code>key</code><code>,a </code><code>int</code><code>)</code>
<code>create</code> <code>table</code> <code>t2(id </code><code>int</code> <code>primary</code> <code>key</code><code>,a </code><code>int</code><code>)</code>
<code>go</code>
<code>CREATE</code> <code>VIEW</code> <code>[dbo].[DLV_AllProductItems]</code>
<code>WITH</code> <code>SCHEMABINDING</code>
<code>AS</code>
<code>SELECT</code> <code>a.id,a.a,b.id </code><code>as</code> <code>idb,b.a </code><code>as</code> <code>ab</code>
<code>FROM</code> <code>dbo.t1 a</code>
<code> </code><code>inner</code> <code>join</code> <code>dbo.t2 b </code><code>on</code> <code>a.id = b.id</code>
<code>GO</code>
<code>create</code> <code>unique</code> <code>clustered </code><code>index</code> <code>ix </code><code>on</code> <code>t(id)</code>
<code>update</code> <code>t1 </code><code>set</code> <code>a=1 </code><code>where</code> <code>id =1</code>
本文轉自 Fanr_Zh 部落格園部落格,原文連結:http://www.cnblogs.com/Amaranthus/p/6238339.html,如需轉載請自行聯系原作者