資料庫減小
具體方法有3種。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
方法二:
第一步:
先備份整個資料庫以備不測 。
第二步:
備份結束後,在Query Analyzer中執行如下的語句:
exec sp_detach_db yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query Analyzer中執行如下的語句:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
方法三:
1. 進入企業管理器,選中資料庫,比如demo
2. 所有任務->分離資料庫
3. 到資料庫文件的存放目錄,將MuOnline_log.LDF文件刪除,以防萬一,你可以拷出去
4. 企業管理器->附加資料庫,選muonline,這個時候你會看見日誌文件這項是一個叉,不要緊,繼續,此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
5. 記得資料庫重新附加後用戶要重新設置一下。
如果以後,不想要它變大:
SQL2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用SQL語句:
alter database 資料庫名 set recovery simple
❷ 資料庫系統能減少數據冗餘嗎
這個說法是正確的。原因如下:
資料庫系統的特點有四個:
1,數據結構化。採用數據模型來對數據進行描述和定義。
2,數據共享性高,冗餘度低。由於是從全局分析和描述數據,就可以適合多個用戶、各種應用共享數據的需求。信息可在統一的地方存儲談拆畢,共享的同時可顯著減少數據冗餘,節省存儲空間。但是,並不是說完全沒有冗餘,只是相對冗餘度降低而已。
3,數據獨立於程序。包括邏輯和物理獨立性。
4,統一管理含芹和控制數據。由於資料庫系統是數據密集型應用,一次統一管理和控制尤其重要。
所以,資料庫系統減少了數據的冗餘這一說法是正確的。
希望能幫到您。謝謝。御衫
❸ 如何減小SqlServer資料庫文件大小
收縮資料庫
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如論壇資料庫Forum)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據
❹ 資料庫系統是怎樣降低冗餘度的
資料庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。
資料庫系統降低冗餘度的方法:
1、盡可能不重復,以最優方式為某個特定組織的多種應用服務;
2、其數據高態結構獨立於使用它的應用程序;
3、數據的增、刪、改和檢索由統一軟體進行管理和控制;
4、從高雀發展的歷史看,資料庫是數據管理的高級階段,是由文件管理系統發展起來的。
資料庫的基本結構分三個戚念源層次,反映了觀察資料庫的三種不同角度。
1、物理數據層:是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合;
2、概念數據層:是資料庫的中間一層,是資料庫的整體邏輯表示;
3、邏輯數據層:邏輯記錄的集合。
❺ sql server 重新生成索引可以減小資料庫空間嗎
sql server 重新生成索引可以減小資料庫空間。
理由分析:
一、重新生成索引:
1、命令: ALTER INDEX 索引名 on 表名 REBUILD
2、解析:重新生成索引將刪除該索引並創建一個新索引。此過程中將刪除碎片,通過使用指定的或現有的填充因子設置壓縮頁來回收磁碟空間,並在連續頁中對索引行重新排序(根據需要分配新頁)。這樣可以減少獲取所請求數據所需的頁讀取數,從而提高磁碟性能。
二、重新組織索引:
1、命令:ALTER INDEX 索引名 on 表名 reorganize
2、解析: 重新組織索引是通過對葉頁進行物理重新排序,使其與葉節點的邏輯順序(從左到右)相匹配,從而對表或視圖的聚集索引和非聚集索引的葉級別進行碎片整理。使頁有序可以提高索引掃描的性能。索引在分配給它的現有頁內重新組織,而不會分配新頁。如果索引跨多個文件,將一次重新組織一個文件,不會在文件之間遷移頁。
重新組織還會壓縮索引頁。如果還有可用的磁碟空間,將刪除此壓縮過程中生成的所有空頁。壓縮基於 sys.indexes 目錄視圖中的填充因子值。
重新組織進程使用最少的系統資源。而且,重新組織是自動聯機執行的。該進程不持有長期阻塞鎖,所以不會阻止運行查詢或更新。
索引碎片不太多時,可以重新組織索引。