none
使用delete from tablename where a='xx',一直卡在那。請問是什么原因? RRS feed

  • 问题



  • 大家好。

    我這邊遇到一個問題,使用delete from tablename where a='xx',但是一直卡在那,執行不出來結果。

    但是使用select * from tablename where a='xx',就能執行出來,而且很快。

    但是后來使用了下 dbcc checktable('tablename')后,再次使用使用delete from tablename where a='xx'  就能執行成功。

    當時查看沒有其他什么session在阻塞這個進程,只是這個進程將其他的session阻塞了。

    請問下,這大概是什么原因造成的呢?
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2009年10月8日 8:39

答案

  • That means table doesn't have row with a='xx', but not mean sql uses proper index. Should check execution plan.
    2009年10月9日 1:48
  • 可能是其他进程 block

    查查 master..sysprocesses 里面, blocked 列值不为0的记录里面, 有没有 spid 与你执行删除的那个 spid 相同的记录(查询分析器右下角可以看到当前连接的spid)

    如果有的话, 则 blocked 列值即为阻塞你的进程

    可以用 dbcc inputbuffer(spid) 看进程在执行的语句
    2009年10月9日 4:00

全部回复

  • Does table have index on column a? Should check execution plan. If delete large amount of rows, better to delete in smaller batches.

    2009年10月8日 12:56
  • Does table have index on column a? Should check execution plan. If delete large amount of rows, better to delete in smaller batches.

    hi rimao: yes,there is an index on column a. After using 'select * from tablename where a='xx'',no data came out. SO?
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2009年10月9日 0:03
  • That means table doesn't have row with a='xx', but not mean sql uses proper index. Should check execution plan.
    2009年10月9日 1:48


  • That means table doesn't have row with a='xx', but not mean sql uses proper index. Should check execution plan.

    Thanks , I wil check it.



    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2009年10月9日 2:21
  • 可能是其他进程 block

    查查 master..sysprocesses 里面, blocked 列值不为0的记录里面, 有没有 spid 与你执行删除的那个 spid 相同的记录(查询分析器右下角可以看到当前连接的spid)

    如果有的话, 则 blocked 列值即为阻塞你的进程

    可以用 dbcc inputbuffer(spid) 看进程在执行的语句
    2009年10月9日 4:00