2014-12-31 18 views
0

我正在運行sybase ASE Adaptive Server Enterprise/15.0.3/EBF 17690 ESD#1.1 RELSE/P/Solaris AMD64/OS 5.10/ase1503/2681/64-bit/FBO/Thu Aug 20 15:37:40 2009並面臨奇怪的問題。Sybase - 刪除不存在的索引時掛起

當拖放不存在索引,我發現了一個無限期掛:

1> sp_helpindex TABLE#DATA#DEALIRD_DBF 
2> go 
Object has the following indexes 

index_name index_keys index_description index_max_rows_per_page index_fillfactor index_reservepagegap index_created  index_local 
----------- ---------- -------------------- ----------------------- ---------------- -------------------- ------------------- ------------ 
DEALIRD_ND0 M_NB  nonclustered, unique      0    0     0 Oct 1 2012 10:20AM Global Index 

(1 row affected) 
index_ptn_name   index_ptn_seg 
---------------------- ------------- 
DEALIRD_ND0_2038047761 default 

(1 row affected, return status = 0) 
1> drop index TABLE#DATA#DEALIRD_DBF.WHATEVER 
2> go 

它在這之後無限期地掛起。

從另一個會話,我檢查什麼的運行:

sqsh-2.1.3 Copyright (C) 1995-2001 Scott C. Gray 
Portions Copyright (C) 2004 Michael Peppler 
This is free software with ABSOLUTELY NO WARRANTY 
For more information type '\warranty' 
1> sp_who 
2> go | grep ENV0001182_14391729 
    0 13 recv sleep LIMITS LIMITS mx1530vm  0 ENV0001182_14391729_1 tempdb  AWAITING COMMAND   0 
    0 19 recv sleep INSTAL INSTAL mx1534vm  0 ENV0001182_14391729 tempdb  AWAITING COMMAND   0 
    0 21 recv sleep INSTAL INSTAL mx1534vm  0 ENV0001182_14391729 tempdb  AWAITING COMMAND   0 
    0 25 recv sleep LIMITS LIMITS mx1530vm  0 ENV0001182_14391729_1 tempdb  AWAITING COMMAND   0 
    0 112 recv sleep LIMITS LIMITS mx1530vm  0 ENV0001182_14391729_1 tempdb  AWAITING COMMAND   0 
    0 114 recv sleep LIMITS LIMITS mx1530vm  0 ENV0001182_14391729_1 tempdb  AWAITING COMMAND   0 
    0 221 recv sleep INSTAL INSTAL mx1530vm  0 ENV0001182_14391729 tempdb  AWAITING COMMAND   0 
    0 270 lock sleep INSTAL INSTAL NULL   0 ENV0001182_14391729 tempdb  DROP INDEX    6953 
    0 271 running sa  sa  NULL   0 ENV0001182_14391729 tempdb  INSERT      0 
    0 325 recv sleep LIMITS LIMITS mx1530vm  0 ENV0001182_14391729_1 tempdb  AWAITING COMMAND   0 
1> dbcc traceon(3604) 
2> go 
DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. 
1> dbcc sqltext(270) 
2> go 
SQL Text: drop index TABLE#DATA#DEALIRD_DBF.WHATEVER 

DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. 

我考慮了查詢一整天,而我的工作是別的東西,只是爲了確保它不會結束,但它只是坐在那裏。

請注意,我不能用新表重現:

1> create table OMX(SOMETHING NUMERIC(2,2)) 
2> go 
1> sp_helpindex OMX 
2> go 
Object does not have any indexes. 
(return status = 1) 
1> drop index OMX.WHATEVER 
2> go 
Msg 3701, Level 11, State 3 
Server 'MX1530VM', Line 1 
Cannot drop the index 'OMX.WHATEVER', because it doesn't exist in the system catalogs. 

有誰知道我可以繼續我的分析?我檢查了sysindexes,但沒有找到它的條目。我更新了桌面上的所有統計數據,但這沒有幫助。

非常感謝!

回答

2

您的會話(spid 270)處於'鎖定睡眠'狀態。這意味着它被另一個會話阻止。你需要找出哪些項目被鎖定導致阻塞,阻塞會話是什麼以及它在做什麼以及爲什麼它不釋放它的鎖定。它看起來像spid 6953導致阻塞。 以「sp_lock @ verbose = 1」開頭,查看哪個鎖正在導致阻塞。

+0

感謝您的幫助羅布。但是,當以'sa'登錄時,我看不到在數據庫服務器上運行的SPID 6953。什麼可能是這個SPID的來源? –

+1

在這種情況下,最好重啓ASE服務器,因爲這可能是一個殭屍進程 - 但很難說清楚。確保你有最新的ASE版本和最新的補丁。檢查堆棧跟蹤的錯誤日誌 - 找到任何東西時,請聯繫Sybase技術支持以查看是否存在已知問題(補救措施是:升級到最新的補丁級別) – RobV

+0

謝謝Rob,我因爲一個不同的原因而重啓了整臺機器這讓我想起了我的問題。 –