日期:2014-05-16  浏览次数:20454 次

sql2000 drop table 表 执行20分钟 都没执行完
sql2000
abc 表中有7万条数据
执行 select  * from abc 时  也是执行好久都没有反应
     select * from abc where 日期='2014-01-02' 没反应
执行 dbcc checktable('abc') 显示正常 数据有7万左右条数据 在300页中
     没有
后来 将表结构 复制出来 
执行 drop table abc 执行了20多分钟了还是没反应
    表 abc 没有索引 没有 触发器
这是为什么呢,数据库别的表没有问题 就这个abc表  有情况
------解决方案--------------------
有可能是有锁把。

你试试这样能查询数据吗:

select  * from abc with(nolock)
------解决方案--------------------
select * from sys.sysprocesses where blocked<>0看看有没有阻塞,特别是那个spid
------解决方案--------------------
查询阻塞进程:
select * from sys.sysprocesses with(nolock) where blocked<>0 
查询锁死表:
CREATE TABLE Test 

TID INT IDENTITY(1,1) 


SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName 
FROM sys.dm_tran_locks 
WHERE resource_type='OBJECT ' 

用于分析查询耗时,执行时间:
set statistics io on 
select * from stuinfo--执行语句 
set statistics io off

SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。 
SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。 
SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。