sqlserver數(shù)據(jù)庫得管理及維護(hù)
前言
Microsoft公司推出的一種關(guān)系型數(shù)據(jù)庫系統(tǒng)。SQL Server是一個(gè)可擴(kuò)展的、高性能的、為分布式客戶機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng),實(shí)現(xiàn)了與WindowsNT的有機(jī)結(jié)合,提供了基于事務(wù)的企業(yè)級(jí)信息管理系統(tǒng)方案。
1、高性能設(shè)計(jì),可充分利用WindowsNT的優(yōu)勢(shì)。
2、系統(tǒng)管理先進(jìn),支持Windows圖形化管理工具,支持本地和遠(yuǎn)程的系統(tǒng)管理和配置。
3、強(qiáng)壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整性。
4、持對(duì)稱多處理器結(jié)構(gòu)、存儲(chǔ)過程、ODBC,并具有自主的SQL語言。 SQLServer以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與Internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu)為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個(gè)出眾的數(shù)據(jù)庫平臺(tái)。
一、手動(dòng)備份及恢復(fù)
有備無患才是最安全得選擇,即使天塌地陷,山崩地裂也無懼
打開SQL Server Management Studio
點(diǎn)擊備份
還原數(shù)據(jù)庫
二、自動(dòng)備份及定期清除備份集計(jì)劃
管理-右鍵維護(hù)計(jì)劃
無報(bào)錯(cuò)說明配置無問題
設(shè)置每天執(zhí)行,沒有結(jié)束日期。
最后ctrl+s保存就好了
為防止數(shù)據(jù)文件過多占用磁盤空間,可以設(shè)置過去一周清除計(jì)劃。
最后得結(jié)果就是這樣得,最后不要忘記保存ctrl+s
三、數(shù)據(jù)庫日志收縮
隨著數(shù)據(jù)庫使用時(shí)間增長,日志文件也在不停的增大,在此總結(jié)幾個(gè)方法供參考,不管哪種方法,只要操作數(shù)據(jù)庫就要注意先備份,以防萬一。
方法一:直接通過企業(yè)管理器收縮日志
1、SQL Server Management Studio,數(shù)據(jù)庫,使用數(shù)據(jù)庫右鍵屬性,選項(xiàng),恢復(fù)模式,由完整更改為簡單;
2、數(shù)據(jù)庫右鍵,任務(wù),收縮,文件,文件類型由數(shù)據(jù)更改為日志,點(diǎn)擊確定進(jìn)行日志收縮;
3、SQL Server Management Studio,數(shù)據(jù)庫,使用數(shù)據(jù)庫右鍵屬性,選項(xiàng),恢復(fù)模式,由簡單更改為完整。
方法二:分離數(shù)據(jù)庫及日志文件
分離數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->分離數(shù)據(jù)庫
刪除或剪切l(wèi)df.log文件
附加數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->附加數(shù)據(jù)庫
四、數(shù)據(jù)庫索引碎片處理
SQL Server Management Studio (SSMS)連接數(shù)據(jù)庫以后,展開數(shù)據(jù)庫,展開表的索引,右鍵某條索引屬性可查看其碎片;索引碎片比例要求小于60%,若索引碎片大多超過90%,需要備份數(shù)據(jù)庫之后重建整個(gè)數(shù)據(jù)庫所有索引:索引右鍵重新生成或者執(zhí)行重建索引存儲(chǔ)過程。存儲(chǔ)過程sql如下:文章來源:http://www.zghlxwxcb.cn/news/detail-464135.html
IF OBJECT_ID('REBUILD_ALL_INDEX_FOR_MSSQL') IS NOT NULL DROP PROC REBUILD_ALL_INDEX_FOR_MSSQL;
go
CREATE PROCEDURE [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL]
AS
DECLARE @tablename varchar(100);
DECLARE @indexname varchar(300);
BEGIN
print 'REBUILD_ALL_INDEX_FOR_MSSQL - 20190427.1'
print 'Challenge Your Won, Challengy Won'
print ' '
declare _table cursor for select name from sysobjects where xtype='U' order by name
OPEN _table
fetch next from _table into @tablename
while (@@fetch_status=0)
begin
declare _index cursor for select i.name from sysindexes i JOIN sysobjects c ON i.id = c.id WHERE i.indid NOT IN ( 0, 255 ) and i.root is not null AND c.name = @tablename ORDER BY i.name
open _index
fetch next from _index into @indexname
while (@@fetch_status=0)
begin
print convert(varchar(20),getdate(),120)+' exec -> ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD'
exec('ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD')
print convert(varchar(20),getdate(),120)
print ' '
fetch next from _index into @indexname
end
close _index
deallocate _index
fetch next from _table into @tablename
end
close _table
deallocate _table
END
go
EXEC [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL];
go
五、常用SQL語句
按照表大小進(jìn)行排序查詢文章來源地址http://www.zghlxwxcb.cn/news/detail-464135.html
SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id
WHERE A.xtype = 'U' AND B.indid IN(0,1) AND B.rows>0 ORDER BY B.ROWS DESC
到了這里,關(guān)于sqlserver數(shù)據(jù)庫得管理及維護(hù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!