首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个比较深的有关问题,覆盖索引会自动创建吗

2012-03-01 
一个比较深的问题,覆盖索引会自动创建吗?2个会话。。。/*创建表t1,c1列聚集索引,c2非聚集索引,c3无索引*/会话

一个比较深的问题,覆盖索引会自动创建吗?
2个会话。。。
/*创建表t1,c1列聚集索引,c2非聚集索引,c3无索引*/

会话1--> 死循环update表中的非聚集索引根据聚集索引
update   t1   set   c2   =   5   where   c1   =   5

会话2--> 死循环select   c2,c3(无任何索引)   from   t1   where   c2   between   3   and   300
检索数据后插入临时表,再执行truncate   table   临时表

执行1后紧接执行2后会发生死锁现象.......

会话一   waiting   select****释放S锁,得到X锁
会话二   waiting   update的产生的锁

可是再执行几次后,发现死锁消失,查看了下锁进程发现select用的是覆盖索引,即显示的索引是(t1.t1)

可是我没有创建过覆盖索引。。。。
忘高手指点。
我的sqlserver是2000和2005一个实例



[解决办法]
update后加个commit,然后再select

热点排行