天天看點

索引視圖導緻死鎖

背景:

  開始并不在意索引視圖會導緻死鎖。

問題:

  出現死鎖,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,如需轉載請自行聯系原作者