亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

兩個SQL Server維護(hù)技巧

添加時間:2012-12-10 17:52:45  添加: 思海網(wǎng)絡(luò) 
數(shù)據(jù)庫的維護(hù)常常交給那些專業(yè)的數(shù)據(jù)庫管理員,但是作為一個開發(fā)者,你也許偶爾需要暫時從事這個工作。所以,試一試這兩個SQL服務(wù)器維護(hù)技巧:輕松改變數(shù)據(jù)庫擁有者、整理索引碎片。誰會想到你甚至可以給那些數(shù)據(jù)庫管理員教上一兩個新技巧呢?

重指定數(shù)據(jù)庫擁有者
當(dāng)回復(fù)或者新建數(shù)據(jù)庫時,你有沒有注意到SQL Server把數(shù)據(jù)庫的擁有者置為你的NT登錄名?僅僅為了確保不同數(shù)據(jù)庫間的一致性(更別提安全性因素了),你也許考慮用系統(tǒng)過程sp_changedbowner來把數(shù)據(jù)庫擁有者改為其它用戶如系統(tǒng)管理員(SA)。你也許已經(jīng)寫了這樣一段腳本用來掃描所有用戶數(shù)據(jù)庫并把數(shù)據(jù)庫擁有者重指定為系統(tǒng)管理員。

系統(tǒng)過程sp_changedbowner有一個參數(shù),即@map,其缺省值為空(null),該過程可以把數(shù)據(jù)庫舊有的擁有者的別名重映射為新的數(shù)據(jù)庫擁有者,如系統(tǒng)管理員。

為了演示該過程,讓我們首先建立一個盡可能小的數(shù)據(jù)庫模型,然后運(yùn)行sp_helpuser指令來看看新創(chuàng)建的用戶名清單:

CREATE DATABASE test
GO
USE test
GO
EXEC sp_helpuser
GO

這些代碼執(zhí)行后,輸出應(yīng)該列出數(shù)據(jù)庫擁有者的清單(db_owner)。如果你使用Windows NT認(rèn)證身份,那么清單中應(yīng)該有一個NULL的登錄名字和一個SID值。

然后,讓我們加上兩個登錄用戶:ISUser1和ISUser2作為db_owner的別名,并把數(shù)據(jù)庫的擁有者改為系統(tǒng)管理員:EXEC sp_addlogin @loginame = 'ISUser1', @passwd = 'ISUser1',@defdb = 'master'
EXEC sp_addlogin @loginame = 'ISUser2', @passwd = 'ISUser2',@defdb = 'master'
EXEC sp_addalias @loginame = 'ISUser1', @name_in_db = 'dbo'
EXEC sp_changedbowner @loginame = 'sa', @map = 'TRUE'
EXEC sp_helpuser

輸出內(nèi)容應(yīng)該顯示出系統(tǒng)管理員作為db_owner、ISUser1作為db_owner的別名。

現(xiàn)在我們用過程sp_changedbowner來指定ISUser2為數(shù)據(jù)庫新的擁有者。我們將使用該過程的@map參數(shù)并把該參數(shù)賦值為“否”,這樣把用戶將為別名。


EXEC sp_changedbowner @loginame = 'ISUser2', @map = 'FALSE'

EXEC sp_helpuser
GO


輸出應(yīng)該顯示出ISUser2現(xiàn)在成為數(shù)據(jù)庫新的擁有者,ISUser1降為別名。下面,我們應(yīng)該停止這個數(shù)據(jù)庫并結(jié)束本演示過程。


USE master
GO
DROP DATABASE test
GO


用DBCC INDEXDEFRAG命令來實現(xiàn)維護(hù)
對索引進(jìn)行維護(hù)工作是一件冗長費力的工作,不過在SQL Server 2000中,微軟已經(jīng)引入了一條維護(hù)命令DBCC INDEXDEFRAG,它相對SQL Server7.0的DBREINDEX命令來說,有好幾個優(yōu)點。最主要的優(yōu)點就是它是一種在線操作,這樣,在該命令運(yùn)行期間用戶仍可以連續(xù)工作。這是因為它不像DBREINDEX那樣在運(yùn)行時需要鎖定操作所涉及的資源,它還可以降低內(nèi)容阻塞。

DBCC INDEXDEFRAG操作一小段、一小段的數(shù)據(jù),這樣該操作隨時都可以停止下來并跟蹤它已經(jīng)完成的工作。該操作每隔五分鐘就報告一次估計已完成工作的百分比。

從技術(shù)的角度來看,DBCC INDEXDEFRAG從新安排了目標(biāo)索引所在的當(dāng)前分配頁上的物理葉。當(dāng)操作完成后,目標(biāo)索引的物理順序與它的邏輯順序相對應(yīng),因此可以加速索引的掃描速度。

該操作還重新安排分配分配給目標(biāo)索引的空間中的其它索引頁。SQL Server將會為以一個填充因子為目標(biāo)、根據(jù)索引數(shù)據(jù)的密度和為該索引分配的空間大小,來為索引緩沖頁上的空間。操作后空下來的頁將會被釋放,這就使得索引變得更加緊湊。

DBCC INDEXDEFRAG也有幾個缺點需要你注意:

如果一個表格中的兩個索引共享一個盤區(qū)的同一個空間,而這兩個索引并不相鄰,那么最好重新建立索引讓它們相鄰。
如果索引中的碎片太多,那么DBCC INDEXDEFRAG命令執(zhí)行的速度可能要低于 DBREINDEX命令;但是如果索引中的碎片不太多,那么DBCC INDEXDEFRAG 應(yīng)該比DBREINDEX快的多,用DBCC INDEXDEFRAG取代DBREINDEX的好處網(wǎng)上有介紹。
非葉式(nonleaf)索引頁不能重新排序。
DBCC INDEXDEFRAG不能更新統(tǒng)計數(shù)字。
關(guān)鍵字:SQL Server、數(shù)據(jù)庫

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機(jī)打開網(wǎng)站