Firebird有 TRUNCATE TABLE指令嗎? |
答題得分者是:kadee
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
因為用這個指令會很慢的一筆一筆刪
而且不會釋放DB空間 ===================引 用 kadee 文 章=================== 用 DELETE FROM TABLE_NAME 不行嗎? 為什麼一定要用 TRUNCATE TABLE ? ------------------------------------------------------------------------------------------ 這個類似像 「DROP TABLE_NAME」 「CREATE TABLE_NAME」的用法 看來這是在FB中唯一的解 (但這指令仍然不會釋放DB空間) ===================引 用 st33chen 文 章=================== how about RECREATE TABLE |
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
FB 在刪除紀錄後,並不會釋放DB的檔案大小,
而是會等到需要時,在重複利用。 原因是資料庫每次在新增紀錄時,如果都需要向OS要檔案空間, 是一件浪費資源的動作,而且目前硬碟空間都很大,所有會有這種機制。 再者如果要得到最好的效能,FB方面甚至建議在create DB的時候, 先在一個TABLE中INSERT 大量的紀錄,把資料庫檔案撐大後,再將紀錄刪除。 以後新增紀錄就不用向OS要檔案空間。 ===================引 用 GrandRURU 文 章=================== 因為用這個指令會很慢的一筆一筆刪 而且不會釋放DB空間 ===================引 用 kadee 文 章=================== 用 DELETE FROM TABLE_NAME 不行嗎? 為什麼一定要用 TRUNCATE TABLE ? ------------------------------------------------------------------------------------------ 這個類似像 「DROP TABLE_NAME」 「CREATE TABLE_NAME」的用法 看來這是在FB中唯一的解 (但這指令仍然不會釋放DB空間) ===================引 用 st33chen 文 章=================== how about RECREATE TABLE
------
Kadee/BigRed Ent. www.tw165.com |
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
如果真的要把FB中已經刪除紀錄的檔案空間釋放出來,
可以用 backup restore。 ===================引 用 kadee 文 章=================== FB 在刪除紀錄後,並不會釋放DB的檔案大小, 而是會等到需要時,在重複利用。 原因是資料庫每次在新增紀錄時,如果都需要向OS要檔案空間, 是一件浪費資源的動作,而且目前硬碟空間都很大,所有會有這種機制。 再者如果要得到最好的效能,FB方面甚至建議在create DB的時候, 先在一個TABLE中INSERT 大量的紀錄,把資料庫檔案撐大後,再將紀錄刪除。 以後新增紀錄就不用向OS要檔案空間。 ===================引 用 GrandRURU 文 章=================== 因為用這個指令會很慢的一筆一筆刪 而且不會釋放DB空間 ===================引 用 kadee 文 章=================== 用 DELETE FROM TABLE_NAME 不行嗎? 為什麼一定要用 TRUNCATE TABLE ? ------------------------------------------------------------------------------------------ 這個類似像 「DROP TABLE_NAME」 「CREATE TABLE_NAME」的用法 看來這是在FB中唯一的解 (但這指令仍然不會釋放DB空間) ===================引 用 st33chen 文 章=================== how about RECREATE TABLE
------
Kadee/BigRed Ent. www.tw165.com |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
其實,就算不釋放空間也無所謂(現在的硬碟都這麼大)
但是如果因為變大而讓效率變差… FB 1.5.5 在增大之後,我每次開啟應用程式,硬碟就開始在置換空間,而每寫一筆資料要5~10秒 這實在是慢的誇張,我可是用單機版的咧! 但用最新的 2.1.1倒是沒這方面的問題,難道是DB Driver有差? ===================引 用 kadee 文 章=================== 如果真的要把FB中已經刪除紀錄的檔案空間釋放出來, 可以用 backup restore。 ===================引 用 kadee 文 章=================== FB 在刪除紀錄後,並不會釋放DB的檔案大小, 而是會等到需要時,在重複利用。 原因是資料庫每次在新增紀錄時,如果都需要向OS要檔案空間, 是一件浪費資源的動作,而且目前硬碟空間都很大,所有會有這種機制。 再者如果要得到最好的效能,FB方面甚至建議在create DB的時候, 先在一個TABLE中INSERT 大量的紀錄,把資料庫檔案撐大後,再將紀錄刪除。 以後新增紀錄就不用向OS要檔案空間。 ===================引 用 GrandRURU 文 章=================== 因為用這個指令會很慢的一筆一筆刪 而且不會釋放DB空間 ===================引 用 kadee 文 章=================== 用 DELETE FROM TABLE_NAME 不行嗎? 為什麼一定要用 TRUNCATE TABLE ? ------------------------------------------------------------------------------------------ 這個類似像 「DROP TABLE_NAME」 「CREATE TABLE_NAME」的用法 看來這是在FB中唯一的解 (但這指令仍然不會釋放DB空間) ===================引 用 st33chen 文 章=================== how about RECREATE TABLE |
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
我用FB開發客戶的ERP也近8年,沒有你說的情形,
或者我可以幫你瞭解一下,請直接用電話或是skype和我聯絡。 我的聯絡方式, www.bigredinf.net ===================引 用 GrandRURU 文 章=================== 其實,就算不釋放空間也無所謂(現在的硬碟都這麼大) 但是如果因為變大而讓效率變差… FB 1.5.5 在增大之後,我每次開啟應用程式,硬碟就開始在置換空間,而每寫一筆資料要5~10秒 這實在是慢的誇張,我可是用單機版的咧! 但用最新的 2.1.1倒是沒這方面的問題,難道是DB Driver有差? ===================引 用 kadee 文 章=================== 如果真的要把FB中已經刪除紀錄的檔案空間釋放出來, 可以用 backup restore。 ===================引 用 kadee 文 章=================== FB 在刪除紀錄後,並不會釋放DB的檔案大小, 而是會等到需要時,在重複利用。 原因是資料庫每次在新增紀錄時,如果都需要向OS要檔案空間, 是一件浪費資源的動作,而且目前硬碟空間都很大,所有會有這種機制。 再者如果要得到最好的效能,FB方面甚至建議在create DB的時候, 先在一個TABLE中INSERT 大量的紀錄,把資料庫檔案撐大後,再將紀錄刪除。 以後新增紀錄就不用向OS要檔案空間。 ===================引 用 GrandRURU 文 章=================== 因為用這個指令會很慢的一筆一筆刪 而且不會釋放DB空間 ===================引 用 kadee 文 章=================== 用 DELETE FROM TABLE_NAME 不行嗎? 為什麼一定要用 TRUNCATE TABLE ? ------------------------------------------------------------------------------------------ 這個類似像 「DROP TABLE_NAME」 「CREATE TABLE_NAME」的用法 看來這是在FB中唯一的解 (但這指令仍然不會釋放DB空間) ===================引 用 st33chen 文 章=================== how about RECREATE TABLE
------
Kadee/BigRed Ent. www.tw165.com |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
感謝 kadee 大的熱心幫忙
我猜可能只是 DBX 1.0 跟 Firebird 1.5.5 不太相容的關係吧 我沒有用過IBO或是IBX,用FB emd只是想說轉Oracle or MySQL時會更方便 所以才想讓DBX來取代BDE 的 paradox 再次謝謝 kadee 大大~~~~ :D ===================引 用 kadee 文 章=================== 我用FB開發客戶的ERP也近8年,沒有你說的情形, 或者我可以幫你瞭解一下,請直接用電話或是skype和我聯絡。 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
這個指令應該會在2.5版中加入吧?
看起來也有很多人在反應這個問題 主要的原因是在於delete from table時會觸發trigger 只要不讓fb觸發trigger就行! 所以有這底下這篇的做法 TRUNCATE TABLE in Firebird 雖然知道做法,但好像還是無法加到db中,所以還是只能等新版推出? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |