SQL2000數據庫開發之收縮數據庫自動收縮數據庫設置
1.在SQL Server企業管理器中,右擊要收縮的數據庫,在彈出的菜單中選擇"所有任務"子菜單下的"收縮數據庫"項。

2.在"收縮后文件中的最大可用空間"中輸入收縮后數據庫中剩余的可用空間量。選擇“在收縮前將頁移到文件起始位置”,使釋放的文件空間保留在數據庫文件中,并使包含數據的頁移到數據庫文件的起始位置。

3.點擊“調度”命令創建或更改自動收縮數據庫的頻率和時間。點擊更改按鈕對調度進行具體的設置。在彈出的窗口中選擇調度發生的時機。選擇“反復出現”,點擊右側的更改按鈕,設定調度發生的頻率和每日發生的頻率以及持續時間。


4.在步驟2中,還可以選擇對單個的文件進行收縮。方法是點擊“文件”,在“數據庫文件”列表中選擇一個要收縮的文件,在“收縮操作”中選擇一種收縮文件的方式點擊確定按鈕。



7.除了手工設置數據庫的收縮外,還可以設置讓數據庫自動收縮。雙擊要收縮的數據庫圖標,在數據對話框的“選項”頁面中選中“自動收縮”選項,點擊“確定”按鈕。

8.通過本例我們學習了如何收縮數據庫以及如何對數據庫收縮進行調度設置。HOHO
9.通過語句我們也可以來收縮數據庫,AIS20071219151707是數據庫名,在查詢分析器中執行。
DBCC SHRINKDATABASE(AIS20071219151707)
backup log AIS20071219151707 with no_log
注:
SQL Server 2000允許收縮數據庫的每個文件以除掉未使用的頁面,數據文件和事務日志文件都能被收縮。收縮可以成組進行,也可以個別進行。可以指定時間間隔使得數據庫在給定的時間自動收縮,這時收縮操作是在后臺發生的,不會影響任何數據庫用戶的活動。當使用了ALTER DATABASE 的AUTO_SHRINK 選項設置數據庫的自動收縮(或者是系統存儲過程sp_dboption)時,每當數據庫中有大量的空閑空間時,數據庫就會收縮,然而如果要移除的空閑空間百分比不能被設置的話則空閑空間將會盡可能地被釋放。
不能收縮比其最初的規模小的完全的數據庫,所以假定一個數據庫在創建時的初始大小是10M,然后增長到了100M,如果此時數據庫中所有的數據都被刪除了,則它能收縮到的最小規模也是10M,不過使用DBCC SHRINKFILE語句可以將單個數據庫文件收縮到小于初始規模的大小,如果使用這種方法就必須對每個文件進行操作而不能對整個數據庫收縮。
事務日志文件的收縮有固定的界線,虛擬日志的規模決定了可能的減少。因此日志文件決不能收縮到比虛擬日志文件更小的規模,收縮事務日志文件將刪除未使用的虛擬日志文件,但會留下至少一個虛擬日志文件。
SQL Server 2000中DBCC SHRINK DATABASE或DBCC SHRINKFILE操作會試圖立即將事務日志文件收縮到要求的尺寸(在取整的條件下).應該在收縮文件之前就截取好日志文件已減少邏輯日志文件的大小,并且標記出不含有任何邏輯日志的虛擬日志。
不需要刪除,不就是日志文件太大,想瘦身嘛,很簡單。
首先用右鍵選擇該數據庫,然后點屬性,在屬性頁里面選擇“選項”選項卡,然后你能看到,故障還原模型里面默認的是“完全”,改成“簡單”,確定
然后收縮數據庫(最好單個文件的收縮),這個時候你能看到,日志文件大幅度減少了,之后再次把故障還原模式修改成“完全”即可
這種方法絕對不會產生文件丟失,也沒有任何安全問題,放心使用吧,呵呵!
首先應該確定是誰慢的,往往是程序處理方面的問題而不是數據庫的問題。
程序方面應該盡可能的減少數據查詢返回的內容,比如可以查詢返回ID,然后再根據ID一條一條的查詢具體內容,看似慢了,在數據量達的時候快很多
對于數據可以參照下面幾點
1、優化SQL語句,SQL語句對查詢速度影響最大
2、對于經常查詢的字段作索引。但是這樣會增加修改時的壓力
4、優化SQLServer,比如給其分配固定的內存,預先分配查詢內存,調整CPU使用率等。
5、優化硬件資源,比如使用更高的服務器或者硬盤,獨立安排數據庫的數據文件和索引文件,將數據文件分布于不同的物理硬盤上等等
6、考慮使用分布數據庫或者對大表進行拆分
另外,2G的數據庫應該不算很大了,我處理過18G的數據庫,8000萬條記錄,查詢速度可以被接受