如何解決SQL 2000資料庫空間異常增加 |
答題得分者是:pcboy
|
11250308
一般會員 發表:2 回覆:3 積分:0 註冊:2004-01-10 發送簡訊給我 |
本來我的資料庫只有5G左右 , 在短短半年中 , 資料庫已長大到 13G ,
我每天都有備份 , 觀察的結果是 , 這個資料庫大概每個月都長大1G左右 . 我想請問下列的這些動作會導致資料庫異常變大嗎 ? 會的話要如何解決呢? 1. 我有用DELPHI寫的外掛程式 , 純綷是查詢的動作 2. 有的外掛程式 , 會新增TMP TABLE , 來串查詢 , 但查詢結果出來後 , 隨即DROP掉此TMP TABLE . 3. 我查過突然持續異常變大的時間點 , 那時我有調整 "SQL資料庫維護計劃" , 我的是SQL SERVER2000的 , 這個動作會影響到資料庫空間嗎? 我查過資料庫的各個資料表的空間 , 發現很多資料表的已配置空間 ( 實際使用空間 未使用空間 索引大小空間 )很大, 實際使用空間不大 , 但「未使用空間卻比實際空間還要大 」 我有壓縮過資料庫 , 也用SQL語法壓縮過 , 壓縮後的資料庫容量僅小了一百多MB , 請問有什麼方法可以釋放資料庫中的「未使用空間」? 這個問題煩惱我好久了, 我希望可以找出導致資料庫異常變大的原因所在 , 希望各位大大能提供意見給我 , 謝謝 ^^ 編輯記錄
taishyang 重新編輯於 2007-11-29 09:50:58, 註解 將[急]字拿掉‧
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
「未使用空間卻比實際空間還要大 」這點有些奇怪 MS-SQL資料庫一般為了效能, 會有一部分未使用空間, 避免每新增一筆, 都要做一次空間配置的動作 每當資料庫中的未使用空間用盡, 會新增一次未使用空間, 好像是目前資料庫容量的10%(可以改) 資料庫的中資料刪除, 只是做個標記, 空間不會釋放, 好像也不算未使用空間 可以利用 "SQL資料庫維護計劃" 釋放已經刪除資料的空間 (好像也會重新調整目前未使用空間大小) PS: 有陣子沒用MS-SQL了, 有問題歡迎指正 ****************** 1.請重新思考一下您的資料庫欄位定義 例如 char(255), 就算您只儲存 "test" (只有 4 bytes), 資料庫中仍是占用 255 bytes varchar(255) , 只儲存 "test" 就只占用 4 bytes 但是 非固定大小欄位 的資料表, 存取速度會比 固定大小欄位 的資料表 慢 2.您的 13 GB 是指包含 log 嗎? 3.您是否建立的一大堆 index ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2007-11-29 10:05:31, 註解 無‧
|
11250308
一般會員 發表:2 回覆:3 積分:0 註冊:2004-01-10 發送簡訊給我 |
感謝pcboy給我的回覆 ^^
我現在的SQL資料庫維護計劃 的 「最佳化」設定是 下面畫面 , 這個是否是你說的 釋放已經刪除資料的空間 ? 資料庫13G是完整備份時 , ".BAK"檔的容量 , 請問這裡面會包含LOG檔的容量嗎? 這個資料庫的屬性如下 : 麻煩你幫我看一下... 這樣的屬性哪裡有不妥 , 謝謝 !! |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
11250308
一般會員 發表:2 回覆:3 積分:0 註冊:2004-01-10 發送簡訊給我 |
● 若我在DELPHI程式新增資料表 , DROP掉後 , 空間會釋放掉嗎 ? ● 我的資料庫中有100多個資料表 , 有幾個資料表空間很大 , 其中有一個資料表的已配置空間約 3G (實際資料空間 470M , 保留的配置空間很大 ) , 非常之奇怪 , 這個資料表在外掛程式中只有做查詢的動作 , 不會透過程式去Maintain它 , 而它裡頭的資料是由 鼎新ERP系統 (此系統已用了快6年) 跑批次作業時Maintain上去的 . 不曉得為什麼莫名的大 ● 資料庫13G是完整備份時 ".BAK"檔的容量 , 請問這裡面會包含LOG檔的容量嗎? ● ERP系統的資料表我都沒有動過Index , 只是所有資料表的 被保留的配置空間 都比實際資料空間比例上大很多 |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
● 若我在DELPHI程式新增資料表 , DROP掉後 , 空間會釋放掉嗎 ? Ans: 可能要等到 "SQL資料庫維護計劃" 執行時候才會釋放 (或許有某些 function 或命令或 stored procedure (不確定有) 可以插入程式中, 要求立刻釋放, 但是不建議這樣做, 因為這個跑起來可能很耗用時間, 尤其 DB 已經龐大到 13 GB) ● 我的資料庫中有100多個資料表 , 有幾個資料表空間很大 , 其中有一個資料表的已配置空間約 3G (實際資料空間 470M , 保留的配置空間很大 ) , 非常之奇怪 , 這個資料表在外掛程式中只有做查詢的動作 , 不會透過程式去Maintain它 , 而它裡頭的資料是由 鼎新ERP系統 (此系統已用了快6年) 跑批次作業時Maintain上去的 . 不曉得為什麼莫名的大 Ans: 這要問鼎新了 ● 資料庫13G是完整備份時 ".BAK"檔的容量 , 請問這裡面會包含LOG檔的容量嗎? Ans : Leader_Date 是資料, Leader_Log 是 Log, 所以不包含 ● ERP系統的資料表我都沒有動過Index , 只是所有資料表的 被保留的配置空間 都比實際資料空間比例上大很多 Ans : 根據您的設定(預設值), 應該是未保留空間應該是每次成長 10% 而已 13 GB, 如果其中未使用空間用盡, 下次配置 1.3 GB 當未使用空間, DB 會變成 14.3 GB 如果一陣子後未使用空間用盡, 下次配置 1.43 GB 當未使用空間, DB 會變成 15.73 GB
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
11250308
一般會員 發表:2 回覆:3 積分:0 註冊:2004-01-10 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |