2010-08-26 127 views
1

我很好奇Informix(7.3)如何在沒有刪除這些表的情況下終止會話時創建沒有日誌的臨時表。當iSQL會話被丟棄時,Informix如何處理臨時表?

我連接使用isql:

cat |isql db

然後,例如,我創建沒有日誌的一個或多個臨時表:

select first 10 * from table into temp t0 with no log;

如果我不放棄這一表中使用正常的drop table命令,然後通過CTRL+C退出iSQL,否則我的會話會終止,否則Informix會對此/這些臨時表執行什麼操作?

我呼籲Jonathan Leffler - 居民informix親 - 再次爲此!

回答

3

我聽到我的名字被徒然帶走... wassup?

哦......好消息是,由於數據服務器(無論是Informix SE還是IDS)是一個獨立的進程,即使前端程序(示例中的isql)崩潰失控,服務器仍在運行,注意到前端已經消失(最終;有時可能需要一秒鐘左右才能看到),然後清理,回滾任何活動事務並刪除臨時表等。

如果服務器本身崩潰,那麼IDS將在重新啓動時執行清理,但Informix SE並不知道它崩潰了,然後,臨時表文件將被擱置。

+0

謝謝,我可以永遠依靠你! – CheeseConQueso 2010-08-26 15:24:22

+0

我將確認jonathan的回答,因爲我在isql異常終止後目睹了\ tmp中剩餘的臨時表。這包括由查詢創建的當前列表。 – 2011-01-19 23:05:18