SQL Server 實(shí)用教程(第2版)第10章_第1頁
SQL Server 實(shí)用教程(第2版)第10章_第2頁
SQL Server 實(shí)用教程(第2版)第10章_第3頁
SQL Server 實(shí)用教程(第2版)第10章_第4頁
SQL Server 實(shí)用教程(第2版)第10章_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

10.1復(fù)制

10.1.1基本概念

10.1.1基本概念根據(jù)復(fù)制的類型和所選擇的復(fù)制選項(xiàng),訂閱服務(wù)器還可以將數(shù)據(jù)更改傳播回發(fā)布服務(wù)器或?qū)?shù)據(jù)重新發(fā)布到其它訂閱服務(wù)器。

10.1.1基本概念項(xiàng)目項(xiàng)目是指定要復(fù)制的數(shù)據(jù)表、數(shù)據(jù)分區(qū)或數(shù)據(jù)庫對(duì)象。項(xiàng)目可以是完整的表、某幾列(使用垂直篩選)、某幾行(使用水平篩選)、存儲(chǔ)過程或視圖定義、存儲(chǔ)過程的執(zhí)行、視圖、索引視圖或用戶定義函數(shù)。發(fā)布數(shù)據(jù)庫中指定的一個(gè)或多個(gè)項(xiàng)目的集合。通過發(fā)布使邏輯相關(guān)的一組數(shù)據(jù)和數(shù)據(jù)庫對(duì)象的復(fù)制變得更容易。訂閱指對(duì)發(fā)布的數(shù)據(jù)或數(shù)據(jù)庫對(duì)象副本的請(qǐng)求。訂閱指定訂閱服務(wù)器從出版服務(wù)器接收發(fā)布的時(shí)間,并將項(xiàng)目映射到訂閱服務(wù)器中的表和其它數(shù)據(jù)庫對(duì)象。10.1.2復(fù)制類型及工作機(jī)理

SQLServer2000支持三種類型的復(fù)制:快照復(fù)制、事務(wù)復(fù)制和合并復(fù)制。1.快照復(fù)制適合使用快照復(fù)制有下列情況:(1)數(shù)據(jù)主要是靜態(tài)數(shù)據(jù),不經(jīng)常更改,當(dāng)數(shù)據(jù)確實(shí)發(fā)生更改時(shí),將一個(gè)完全新的副本發(fā)布到訂閱服務(wù)器更有意義。(2)一個(gè)時(shí)期內(nèi)允許有已過時(shí)的數(shù)據(jù)復(fù)本。(3)復(fù)制少量數(shù)據(jù)。(4)當(dāng)需要分發(fā)數(shù)據(jù)的只讀復(fù)本時(shí),快照復(fù)制最適合。2.事務(wù)復(fù)制SQLServer2000監(jiān)視INSERT、UPDATE和DELETE語句,以及對(duì)存儲(chǔ)過程執(zhí)行和索引視圖的更改。10.1.2復(fù)制類型及工作機(jī)理事務(wù)復(fù)制通常在如下情況使用:

(1)希望快速將數(shù)據(jù)修改傳播到訂閱服務(wù)器。(2)需要遵守ACID屬性的事務(wù)(要么在訂閱服務(wù)器上全部應(yīng)用,要么都不應(yīng)用)。(3)訂閱服務(wù)器通常連接到發(fā)布服務(wù)器。3.合并復(fù)制

合并復(fù)制可用的選項(xiàng)包括:水平和垂直篩選已發(fā)布的數(shù)據(jù)。合并復(fù)制適用如下情況:(1)多個(gè)訂閱服務(wù)器需要在不同時(shí)刻更新數(shù)據(jù)并將這些更改傳播到發(fā)布服務(wù)器和其它訂閱服務(wù)器。(2)訂閱服務(wù)器需要接收數(shù)據(jù)、脫機(jī)更改數(shù)據(jù)、然后將更改同步到發(fā)布服務(wù)器和其它訂閱服務(wù)器。(3)站點(diǎn)獨(dú)立很重要。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制

1.配置復(fù)制配置復(fù)制即配置發(fā)布服務(wù)器、分發(fā)服務(wù)器和訂閱服務(wù)器以用于復(fù)制,通過企業(yè)管理器配置復(fù)制的步驟如下:第1步在企業(yè)管理器中,展開服務(wù)器組中的一個(gè)服務(wù)器,選中“復(fù)制”文件夾右擊,出現(xiàn)如圖所示10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制快捷菜單,單擊“配置發(fā)布、訂閱服務(wù)器和分發(fā)”菜單項(xiàng),進(jìn)入如圖所示的界面;10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第2步根據(jù)向?qū)ы撨x擇一個(gè)分發(fā)服務(wù)器,創(chuàng)建分發(fā)數(shù)據(jù)庫,然后在“自定義配置”頁,接受默認(rèn)的發(fā)布服務(wù)器和訂閱服務(wù)器,或者選擇“是,讓我設(shè)置分發(fā)數(shù)據(jù)庫屬性,啟用發(fā)布服務(wù)器或設(shè)置發(fā)布設(shè)置”。第3步允許用戶使用向?qū)гO(shè)置分發(fā)數(shù)據(jù)庫屬性、啟用發(fā)布服務(wù)器、啟用發(fā)布數(shù)據(jù)庫并啟用訂閱服務(wù)器。以后還可以在發(fā)布服務(wù)器和分發(fā)服務(wù)器屬性中配置這些屬性。2.發(fā)布數(shù)據(jù)和數(shù)據(jù)庫對(duì)象在創(chuàng)建發(fā)布時(shí),可以選擇表以及要發(fā)布的數(shù)據(jù)和數(shù)據(jù)庫對(duì)象的篩選分區(qū)。通過企業(yè)管理器創(chuàng)建發(fā)布的方法:10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第1步在發(fā)布服務(wù)器上打開SQLServer企業(yè)管理器,在目錄樹中展開“復(fù)制”文件夾,選中“發(fā)布內(nèi)容”文件夾右擊,出現(xiàn)一快捷菜單,然后單擊“新建發(fā)布”菜單項(xiàng),出現(xiàn)如圖所示的界面10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第2步在創(chuàng)建發(fā)布向?qū)ы撝?,選擇“顯示本向?qū)е械母呒?jí)選項(xiàng)”啟用可更新的訂閱或可轉(zhuǎn)換的訂閱。第3步按向?qū)崾緢?zhí)行以下操作:(1)選擇發(fā)布數(shù)據(jù)庫,使用發(fā)布模板,選擇發(fā)布類型;(2)選擇可更新的訂閱或可傳送的訂閱(快照復(fù)制或事務(wù)復(fù)制可使用的選項(xiàng));(3)指定訂閱服務(wù)器類型,指定要發(fā)布的數(shù)據(jù)和數(shù)據(jù)庫對(duì)象項(xiàng)目;(4)選擇發(fā)布并定義發(fā)布屬性,如:篩選列、篩選行、啟用動(dòng)態(tài)篩選器、驗(yàn)證訂閱信息、優(yōu)化同步、允許匿名訂閱以及設(shè)置快照代理調(diào)度。3.訂閱發(fā)布(1)創(chuàng)建強(qiáng)制訂閱10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第1步在企業(yè)管理器目錄樹中,展開“復(fù)制”文件夾展開“發(fā)布內(nèi)容”文件夾;第2步選中要訂閱的發(fā)布項(xiàng)目右擊,出現(xiàn)一快捷菜單,單擊“強(qiáng)制新訂閱”菜單項(xiàng);第3步完成向?qū)崾镜牟襟E。(2)創(chuàng)建請(qǐng)求或匿名訂閱第1步在企業(yè)管理器目錄樹中,展開“復(fù)制”文件夾右擊“訂閱”文件夾,出現(xiàn)一快捷菜單,單擊“新建請(qǐng)求訂閱”菜單項(xiàng);第2步完成“請(qǐng)求訂閱向?qū)А碧崾镜牟襟E。如果發(fā)布允許匿名訂閱,在請(qǐng)求訂閱向?qū)е袑@示“允許匿名訂閱”頁,用戶可將新的訂閱指定為匿名。4.生成初始快照初始快照用于將數(shù)據(jù)庫架構(gòu)及數(shù)據(jù)傳輸給訂閱服務(wù)器??捎袃煞N方法創(chuàng)建快照:(1)通過快照代理程序創(chuàng)建快照;(2)通過發(fā)布向?qū)?chuàng)建快照;10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制5.應(yīng)用初始快照使用分發(fā)代理程序或合并代理程序通過同步訂閱自動(dòng)應(yīng)用快照。1)SQLServer自動(dòng)應(yīng)用初始快照當(dāng)SQLServer2000將快照應(yīng)用到訂閱服務(wù)器時(shí),分發(fā)代理程序(對(duì)于快照復(fù)制和事務(wù)復(fù)制)或合并代理程序(對(duì)于合并復(fù)制)會(huì)將架構(gòu)和數(shù)據(jù)文件應(yīng)用到訂閱服務(wù)器上的訂閱數(shù)據(jù)庫。2)手工應(yīng)用快照如果發(fā)布很大,則從光盤或其它存儲(chǔ)設(shè)備裝載快照的效率可能更高。手工應(yīng)用快照的方法如下:(1)將快照文件保存到可移動(dòng)存儲(chǔ)設(shè)備,然后將該存儲(chǔ)設(shè)備送到訂閱服務(wù)器所在位置;(2)在創(chuàng)建強(qiáng)制訂閱向?qū)Щ騽?chuàng)建請(qǐng)求訂閱向?qū)е械摹俺跏蓟嗛啞表撋现付ㄓ嗛喎?wù)器已經(jīng)擁有架構(gòu)和數(shù)據(jù);10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制6.同步處理同步處理:指在初始快照應(yīng)用于訂閱服務(wù)器后,數(shù)據(jù)在發(fā)布服務(wù)器和訂閱服務(wù)器之間傳播的過程。因此同步處理分為兩個(gè)方面:發(fā)布的同步處理和訂閱的同步處理。1)發(fā)布的同步處理快照發(fā)布的同步處理:在訂閱服務(wù)器上重新應(yīng)用快照,以便訂閱數(shù)據(jù)庫上的架構(gòu)和數(shù)據(jù)與發(fā)布數(shù)據(jù)庫保持一致。事務(wù)發(fā)布的同步處理:使數(shù)據(jù)更新、插入、刪除和其它修改在發(fā)布服務(wù)器和訂閱服務(wù)器之間分發(fā)。合并發(fā)布的同步處理:合并在多個(gè)站點(diǎn)進(jìn)行的數(shù)據(jù)更新,并檢測(cè)、解決沖突。2)訂閱的同步處理(1)同步強(qiáng)制訂閱第1步在發(fā)布服務(wù)器的企業(yè)管理器目錄樹中,展開“復(fù)制”文件夾展開“發(fā)布內(nèi)容”文件夾,然后單擊需要同步訂閱的發(fā)布項(xiàng)目;第2步右擊要同步的訂閱,然后單擊“啟動(dòng)同步處理”命令。

10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制(2)同步請(qǐng)求訂閱第1步在訂閱服務(wù)器的企業(yè)管理器目錄樹中,展開“復(fù)制”文件夾展開“訂閱”文件夾;第2步右擊要同步的訂閱,然后單擊“啟動(dòng)同步處理”命令。如何同步匿名訂閱(Windows同步管理器)(3)同步匿名訂閱第1步在“開始”菜單中,選擇“程序”“附件”子菜單,然后單擊“同步”命令;第2步單擊要同步的訂閱,然后單擊“同步”按鈕。【例10.1】在數(shù)據(jù)庫XSCJ上創(chuàng)建發(fā)布和分發(fā),在數(shù)據(jù)庫XSCJSubs上創(chuàng)建訂閱。實(shí)現(xiàn)快照復(fù)制。1)啟用發(fā)布和分發(fā)服務(wù),并創(chuàng)建發(fā)布10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制若未啟動(dòng)SQLServerAgent服務(wù),則要先啟動(dòng)該服務(wù)。第1步單擊企業(yè)管理器控制臺(tái)上服務(wù)器,在“工具”菜單上選擇復(fù)制創(chuàng)建和管理發(fā)布。如圖10.5所示。第2步在所出現(xiàn)的如圖10.6所示的窗口中選擇數(shù)據(jù)庫XSCJ,單擊“創(chuàng)建發(fā)布”按鈕,將出現(xiàn)創(chuàng)建發(fā)布向?qū)Т翱?,如圖10.7所示。第3步在所出現(xiàn)的創(chuàng)建發(fā)布向?qū)Т翱谥袉螕簟跋乱徊健薄5?步在如圖10.8所示的窗口中選擇包含要發(fā)布數(shù)據(jù)的數(shù)據(jù)庫XSCJ,單擊“下一步”。第5步在如圖10.9所示的窗口中選擇發(fā)布類型為快照發(fā)布,單擊“下一步”。第6步在如圖10.10所示的窗口中選擇訂閱更新的類型為即時(shí)更新,單擊“下一步”。第7步在如圖10.11所示的窗口中指定訂閱服務(wù)器的類型為運(yùn)行SQLServer2000的服務(wù)器,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制圖

在工具菜單中選擇創(chuàng)建和管理發(fā)布圖

在XSCJ數(shù)據(jù)庫上創(chuàng)建發(fā)布10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制“創(chuàng)建發(fā)布向?qū)А睔g迎界面

選擇包含要發(fā)布數(shù)據(jù)的數(shù)據(jù)庫XSCJ10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第8步在如圖所示的窗口中指定作為發(fā)布項(xiàng)目的數(shù)據(jù)庫對(duì)象為XSCJ的所有表,單擊“下一步”。第9步在如圖所示的窗口中指定添加唯一標(biāo)識(shí)符列,單擊“下一步”。第10步在如圖所示的窗口中指定發(fā)布名稱和描述,發(fā)布名稱為Student1,單擊“下10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第11步在如圖所示的窗口中選擇自定義發(fā)布屬性為根據(jù)指定方式創(chuàng)建發(fā)布,單擊“下一步”。第12步在如圖所示的窗口中單擊“完成”按鈕,完成創(chuàng)建發(fā)布向?qū)А4藭r(shí)系統(tǒng)將出現(xiàn)如圖所示的提示對(duì)話框,顯示系統(tǒng)正在進(jìn)行的工作。執(zhí)行完成后,將出現(xiàn)如圖所示的發(fā)布創(chuàng)建完成界面。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制2)配置發(fā)布和分發(fā)服務(wù)器第1步單擊企業(yè)管理器控制臺(tái)上服務(wù)器,在“工具”菜單上選擇復(fù)制配置發(fā)布、訂閱服務(wù)器和分發(fā)。

10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第2步在如圖所示的窗口中選擇分發(fā)服務(wù)器選項(xiàng)卡,輸入連接密碼并確認(rèn),單擊“確定”。第3

步在如圖所示的窗口中設(shè)置分發(fā)服務(wù)器的屬性,單擊“確定”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制3)創(chuàng)建數(shù)據(jù)庫XSCJSubs在企業(yè)管理器中在文件夾數(shù)據(jù)庫單擊右鍵,依次選擇新建數(shù)據(jù)庫在數(shù)據(jù)庫名稱中輸入XSCJSubs確定。4)創(chuàng)建訂閱第1

步在企業(yè)管理器中單擊服務(wù)器名工具復(fù)制請(qǐng)求訂閱,如圖

10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第2步在如圖所示的窗口中選擇數(shù)據(jù)庫XSCJ,單擊請(qǐng)求新訂閱按鈕。第3步在所出現(xiàn)的如圖所示的創(chuàng)建訂閱向?qū)Т翱谥袉螕簟跋乱徊健?。?步在如圖所示的窗口中選擇查看已注冊(cè)服務(wù)器所作的發(fā)布,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第5步在如圖所示的窗口中選擇發(fā)布,單擊USER1上的Student1:XSCJ,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第6步在如圖所示的窗口中指定同步代理程序連接到發(fā)布和分發(fā)服務(wù)器的登錄屬性,選擇使用SQLServer身份驗(yàn)證,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第7步在如圖10.29所示的窗口中指定創(chuàng)建訂閱的目的數(shù)據(jù)庫,選擇數(shù)據(jù)庫XSCJSubs,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第8

步在如圖10.30所示的窗口中指定對(duì)訂閱進(jìn)行初始化,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第9步在如圖10.31所示的窗口中指定快照文件的位置及在初始化訂閱時(shí)訪問快照文件的方式,單擊“下一步”10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第10步在如圖10.32所示的窗口中設(shè)置分發(fā)代理程序調(diào)度方式,將其設(shè)置為連續(xù)方式,單擊“下一步”。第11步在如圖10.33所示的窗口中查看需要的服務(wù)是否已經(jīng)啟動(dòng),若沒有啟動(dòng),則選擇啟動(dòng)它,單擊“下一步”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第12步在如圖10.34所示的窗口中選擇啟動(dòng)SQLServer代理服務(wù)的方式,將其指定為手工啟動(dòng),單擊“下一步”。第13步在如圖10.35所示的窗口中單擊“完成”。在數(shù)據(jù)庫XSCJSubs上創(chuàng)建的請(qǐng)求訂閱的配置參數(shù)就設(shè)置完成了。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制系統(tǒng)將出現(xiàn)如圖10.36所示的提示對(duì)話框,指示系統(tǒng)正在創(chuàng)建該訂閱。創(chuàng)建請(qǐng)求訂閱要依次完成三項(xiàng)工作:保存訂閱設(shè)置、創(chuàng)建訂閱、更新發(fā)布服務(wù)器,這些工作都完成后,將出現(xiàn)如圖10.37所示的提示對(duì)話框,在其中單擊“確定”即可。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制如圖10.38所示的請(qǐng)求訂閱對(duì)話框中對(duì)訂閱進(jìn)行屬性更改、刪除及初始化等工作。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制5)運(yùn)行快照代理程序第1步在企業(yè)管理器中依次展開復(fù)制發(fā)布內(nèi)容Student1:XSCJ,單擊鼠標(biāo)右鍵,選擇“屬性”,在所出現(xiàn)的如圖10.39所示的發(fā)布屬性窗口中選擇“狀態(tài)”選項(xiàng)卡。若發(fā)布要求的服務(wù)未啟動(dòng),則啟動(dòng)它們;單擊“立即運(yùn)行代理程序”“確定”。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制在發(fā)布狀態(tài)窗口的上一次運(yùn)行文本框中將出現(xiàn)“正在運(yùn)行”的提示,代理程序運(yùn)行完畢后,將出現(xiàn)如圖10.40所示的提示信息。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第2步通過以下操作檢查代理程序執(zhí)行的操作結(jié)果,在SQLServer的安裝目錄的如下子目錄Repldata\Unc中檢查由代理程序創(chuàng)建的文件夾和文件。\Repldata\unc\user1_XSCJ_Student1\20020217222102\XS_1.sch文件的內(nèi)容:SETQUOTED_IDENTIFIERONGOdroptable[XS]GOSETANSI_PADDINGONGOCREATETABLE[XS]( [學(xué)號(hào)][char](6)NOTNULL, [姓名][char](8)NOTNULL, [專業(yè)名][char](16)NULL, [性別][bit]NOTNULLCONSTRAINT[DF_XS_性別]DEFAULT(1), [出生時(shí)間][smalldatetime]NOTNULL, [總學(xué)分][tinyint]NULL, [備注][text]NULL, [msrepl_tran_version][uniqueidentifier]NOTNULLCONSTRAINT[DF__XS__msrepl_tran___36B12243]DEFAULT(newid()))GO10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第3步在企業(yè)管理器中查看XSCJSubs中的表,可見表XS、KC和XS_KC都已被創(chuàng)建,如圖10.41所示。10.1.3利用企業(yè)管理器創(chuàng)建復(fù)制第4步打開查詢分析器,輸入以下SQL語句查詢XSCJSubs數(shù)據(jù)庫中XS表中的記錄:USEXSCJSubsSELECT*FROMXS執(zhí)行結(jié)果如圖10.42所示。10.2.1事務(wù)類型SQLServer的事務(wù)可分為兩類:系統(tǒng)提供的事務(wù)和用戶定義的事務(wù)。系統(tǒng)提供的事務(wù)是指在執(zhí)行某些T-SQL語句時(shí),一條語句就構(gòu)成了一個(gè)事務(wù),這些語句是:ALTERTABLECREATEDELETEDROPFETCHGRANTINSERTOPEN

REVOKESELECTUPDATETRUNCATETABLE例如執(zhí)行如下的創(chuàng)建表語句:createtablexx(f1intnotnull,f2char(10),f3varchar(30))這條語句本身就構(gòu)成了一個(gè)事務(wù),它要么建立起含3列的表結(jié)構(gòu),要么對(duì)數(shù)據(jù)庫沒有任何影響,而不會(huì)建立起含1列或2列的表結(jié)構(gòu)。10.2.2事務(wù)處理語句事務(wù)處理有關(guān)的語句包括BEGINTRANSACTION、COMMITTRANSACTION、和ROLLBACKTRANSACTION語句。1.BEGINTRANSACTION語句BEGINTRANSACTION語句定義事務(wù)的開始。語法格式:BEGINTRAN[SACTION][transaction_name|@tran_name_variable

[WITHMARK[‘description’]]2.COMMITTRANSACTION語句其語法格式為:COMMIT[TRAN[SACTION][transaction_name|@tran_name_variable]]3.ROLLBACK

TRANSACTION語句語法格式:ROLLBACK[TRAN[SACTION][transaction_name|@tran_name_variable

|savepoint_name|@savepoint_variable]]10.2.2事務(wù)處理語句【例10.2】本例先利用事務(wù)變量命名一個(gè)事務(wù),提交該事務(wù)后,將為所有計(jì)算機(jī)系的學(xué)生增加10個(gè)學(xué)分。DECLAERE@tran_namevarchar(20)SET@tran_name='MyTran1'BEGINTRANSACTION@tran_nameGO

USEXSCJGOUPDATEXS SET總學(xué)分=總學(xué)分+10 WHERE專業(yè)名='計(jì)算機(jī)'GO

COMMITTRANSACTION@tran_nameGO10.2.2事務(wù)處理語句【例10.3】本例定義一個(gè)事務(wù),向XSCJ數(shù)據(jù)庫的XS表中插入一行數(shù)據(jù),然后在刪除該行。BEGINTRANSACTIONUSEXSCJ

INSERTINTOXS VALUES('001115','朱一虹','計(jì)算機(jī)',1,'3/20/1980',38,NULL)SAVETRANMy_sav

DELETEFROMXSWHERE姓名='朱一虹'ROLLBACKTRANMy_savCOMMITTRANGO10.3鎖定鎖定粒度在SQLServer中,可被鎖定的資源從小到大分別是行、頁、擴(kuò)展盤區(qū)、表和數(shù)據(jù)庫,被鎖定的資源單位稱為鎖定粒度。2.鎖模式SQLServer使用不同的鎖模式鎖定資源,這些鎖模式確定了并發(fā)事務(wù)訪問資源的方式。共有6種鎖模式,分別是:共享、更新、排它、意向、架構(gòu)和大容量更新。10.3鎖定SQLServer2000提供的鎖模式及其主要用途總結(jié)于表中。鎖模式描述共享

(S)用于只讀操作,如

SELECT語句。更新

(U)用于可更新的資源中。防止當(dāng)多個(gè)會(huì)話在讀取、鎖定以及隨后可能進(jìn)行的資源更新時(shí)發(fā)生常見形式的死鎖。排它

(X)用于數(shù)據(jù)修改操作,例如

INSERT、UPDATE或

DELETE。確保不會(huì)同時(shí)對(duì)同一資源進(jìn)行多重更新。意向用于建立鎖的層次結(jié)構(gòu)。意向鎖的類型為:意向共享

(IS)、意向排它

(IX)以及與意向排它共享

(SIX)。架構(gòu)在執(zhí)行依賴于表架構(gòu)的操作時(shí)使用。架構(gòu)鎖的類型為:架構(gòu)修改

(Sch-M)和架構(gòu)穩(wěn)定性

(Sch-S)。大容量更新

(BU)向表中大容量復(fù)制數(shù)據(jù)并指定了TABLOCK提示時(shí)使用。10.3鎖定

有些鎖之間是兼容的,如共享鎖和更新鎖;有些鎖之間是不兼容的,如共享鎖和排它鎖。表列出了各種鎖之間的兼容性。鎖模式ISSUIXSIXXIS兼容兼容兼容兼容兼容不兼容S兼容兼容兼容不兼容不兼容不兼容U兼容兼容不兼容不兼容不兼容不兼容IX兼容不兼容不兼容兼容不兼容不兼容SIX兼容不兼容不兼容不兼容不兼容不兼容X不兼容不兼容不兼容不兼容不兼容不兼容10.3鎖定3.顯示鎖定信息在SQLServer2000企業(yè)管理器中查看系統(tǒng)鎖定信息如圖10.43所示,在企業(yè)管理器中展開“管理”文件夾,在“當(dāng)前活動(dòng)”下展開“鎖/進(jìn)程id”和“鎖/對(duì)象”,即可查看到進(jìn)程、鎖以及對(duì)象和鎖等信息。10.4.1系統(tǒng)性能評(píng)估及監(jiān)測(cè)

影響SQLServer系統(tǒng)性能的因素比較多,主要有:(1)系統(tǒng)硬件資源:主要是CPU數(shù)量與速度、硬盤容量與速度、內(nèi)存大小等;(2)操作系統(tǒng)環(huán)境(WindowsNT、Windows2000/2003):并行服務(wù)與活動(dòng)的支持程度、磁盤及文件的管理性能等;(3)數(shù)據(jù)庫應(yīng)用程序:數(shù)據(jù)庫邏輯與物理設(shè)計(jì)的質(zhì)量;(4)客戶端應(yīng)用程序:程序中事務(wù)控制、鎖機(jī)制的應(yīng)用及游標(biāo)的應(yīng)用等;(5)網(wǎng)絡(luò)性能:網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)連接速度及數(shù)據(jù)傳輸速度等。10.4.1系統(tǒng)性能評(píng)估及監(jiān)測(cè)1.建立服務(wù)器性能基線2.識(shí)別與分析瓶頸潛在瓶頸對(duì)服務(wù)器的影響內(nèi)存使用分配的內(nèi)存不足或可由

SQLServer使用的內(nèi)存不足將降低性能。數(shù)據(jù)不是駐留在數(shù)據(jù)高速緩存內(nèi),而是必須從磁盤連續(xù)讀取。當(dāng)需要頁時(shí),WindowsNT4.0和

MicrosoftWindows?2000與磁盤交換數(shù)據(jù)而導(dǎo)致過多的換頁操作。CPU處理器使用持續(xù)的

CPU高使用率可能表明需要升級(jí)

CPU或添加多個(gè)處理器。磁盤

I/O性能低磁盤

I/O(磁盤的讀寫活動(dòng))將導(dǎo)致事務(wù)吞吐量降低。用戶連接不正確地配置用戶數(shù)會(huì)導(dǎo)致系統(tǒng)運(yùn)行速度變慢或限制本來可由

SQLServer使用的內(nèi)存量。阻塞鎖一個(gè)進(jìn)程可能正迫使另一個(gè)進(jìn)程等待,因而減緩或停止阻塞進(jìn)程。3.確定用戶活動(dòng)

10.4.2性能監(jiān)測(cè)工具

SQLServer提供了多個(gè)工具以監(jiān)視SQLServer系統(tǒng)中的事件。這些工具包括:SQL事件探查器、系統(tǒng)監(jiān)視器、當(dāng)前活動(dòng)窗口(企業(yè)管理器中)以及性能監(jiān)測(cè)語句。1.SQL事件探查器啟動(dòng)SQL事件探查器的方法是:開始程序MicrosoftSQLServer事件探查器,其主界面如圖所示。10.4.2性能監(jiān)測(cè)工具

要啟動(dòng)一個(gè)新跟蹤,單擊SQL探查器的“新跟蹤”圖標(biāo),將出現(xiàn)如圖10.45所示的選擇SQLServer對(duì)話框。在對(duì)話框中選擇服務(wù)器,單擊確定按鈕,將出現(xiàn)如圖10.46所示的設(shè)置跟蹤屬性對(duì)話框。10.4.2性能監(jiān)測(cè)工具設(shè)置好跟蹤屬性后,單擊確定,將開始跟蹤指定SQLServer上的指定事件、數(shù)據(jù)及屬性,其顯示如圖10.47所示。10.4.2性能監(jiān)測(cè)工具2.系統(tǒng)監(jiān)視器系統(tǒng)監(jiān)視器只在MicrosoftWindows2000/2003上工作,并且只能(遠(yuǎn)程或本地)監(jiān)視WindowsNT4.0或Windows2000/2003上的SQLServer實(shí)例。3.當(dāng)前活動(dòng)窗口在SQLServer企業(yè)管理器中,當(dāng)前活動(dòng)窗口以圖形的形式顯示有關(guān)當(dāng)前正在SQLServer實(shí)例上運(yùn)行的進(jìn)程、被阻塞的進(jìn)程、鎖和用戶活動(dòng)的信息。4.性能監(jiān)測(cè)語句除了上述的三種圖形檢測(cè)工具外,還有一些T-SQL的系統(tǒng)過程、全局變量、SET語句及DBCC語句等與性能監(jiān)測(cè)有關(guān),將其一部分列于表中。10.4.2性能監(jiān)測(cè)工具性能監(jiān)測(cè)語句

名稱類別描述Sp_who系統(tǒng)存儲(chǔ)過程當(dāng)前系統(tǒng)的用戶和進(jìn)程Sp_lock系統(tǒng)存儲(chǔ)過程鎖信息Sp_spaceused系統(tǒng)存儲(chǔ)過程表或數(shù)據(jù)庫使用的磁盤空間Sp_monitor系統(tǒng)存儲(chǔ)過程SQLServer統(tǒng)計(jì)信息Sp_helpindex系統(tǒng)存儲(chǔ)過程表索引@@connections全局變量自上次啟動(dòng)以來的連接數(shù)或試圖連接數(shù)@@spid全局變量當(dāng)前用戶進(jìn)程的服務(wù)器進(jìn)程id@@cpu_busy全局變量自上次啟動(dòng)以來CPU實(shí)際工作的時(shí)間@@total_errors全局變量自上次啟動(dòng)以來的磁盤讀寫錯(cuò)誤次數(shù)SetstatisticstoSET語句顯示與T-SQL語句生成的作業(yè)量信息SetstatisticstimeSET語句顯示語法分析、編譯和執(zhí)行每條語句所需的時(shí)間Setshowplan_textSET語句不執(zhí)行語句,但顯示與語句執(zhí)行有關(guān)的信息MEMUSAGEDBCC語句內(nèi)存使用情況SQLPERFDBCC語句事務(wù)日志空間使用情況OPENTRANDBCC語句指定數(shù)據(jù)庫最老的活動(dòng)事務(wù)信息CHECKDBDBCC語句檢查數(shù)據(jù)庫所有對(duì)象分配與結(jié)構(gòu)完整性CHECKTABLEDBCC語句檢查表、索引、text、ntext及image頁的完整性10.5.1SQLServer自動(dòng)化管理簡(jiǎn)介SQLServer的自動(dòng)化管理組件包括作業(yè)、警報(bào)和操作員。下列事件將會(huì)寫入WindowsNT/2000Server應(yīng)用程序日志:級(jí)別在19—25之間的SQLServer錯(cuò)誤;已用系統(tǒng)存儲(chǔ)過程sp_addmessage或sp_altermessage定義將錯(cuò)誤消息寫入應(yīng)用程序日志;執(zhí)行了RAISERRORWITHLOG語句;執(zhí)行了系統(tǒng)存儲(chǔ)過程xp_logevent。注意Windows95/98不支持應(yīng)用程序日志服務(wù),若在Windows95/98上運(yùn)行SQLServer,則SQLServerProfile將監(jiān)視登錄的事件,并將它們轉(zhuǎn)發(fā)到SQLServerAgent。10.5.2作業(yè)及其管理1.創(chuàng)建作業(yè)(1)使用SQLServer企業(yè)管理器創(chuàng)建作業(yè)在企業(yè)管理器中展開“管理”文件夾和“SQLServer代理”文件夾,在“作業(yè)”選項(xiàng)上單擊鼠標(biāo)右鍵,在彈出的快捷菜單上選擇“新建作業(yè)”,如圖所示。10.5.2作業(yè)及其管理進(jìn)行了上述操作后,將出現(xiàn)如圖10.49所示的新建作業(yè)屬性對(duì)話框,它共有四個(gè)選項(xiàng)卡:常規(guī)、步驟、調(diào)度和通知。

在“常規(guī)”選項(xiàng)卡中輸入作業(yè)名,然后選擇“步驟”選項(xiàng)卡,單擊“新建”按鈕,在所出現(xiàn)如圖10.50的“新建作業(yè)步驟”對(duì)話框中輸入該步驟所要執(zhí)行的操作。

10.5.2作業(yè)及其管理單擊“確定”,該步驟即定義完成。注意,一個(gè)作業(yè)至少包含一個(gè)步驟。其后還可設(shè)置調(diào)度和通知屬性。作業(yè)創(chuàng)建完成后,在企業(yè)管理器中將出現(xiàn)該作業(yè)圖標(biāo),如圖10.51所示。10.5.2作業(yè)及其管理(2)使用CreateJobWizard創(chuàng)建作業(yè)在SQLServer企業(yè)管理器中選擇:工具向?qū)Ч芾韯?chuàng)建作業(yè)向?qū)?,即可啟?dòng)創(chuàng)建作業(yè)向?qū)?,如圖10.52所示。10.5.2作業(yè)及其管理(3)使用T-SQL創(chuàng)建作業(yè)

T-SQL創(chuàng)建作業(yè)是通過系統(tǒng)存儲(chǔ)過程sp_add_job、sp_add_jobstep和sp_add_job_schedule實(shí)現(xiàn)的,步驟是:執(zhí)行sp_add_job創(chuàng)建作業(yè)執(zhí)行sp_add_jobstep創(chuàng)建一個(gè)或多個(gè)作業(yè)步驟執(zhí)行sp_add_jobschedule創(chuàng)建作業(yè)調(diào)度。

SQLServer還建議執(zhí)行完sp_add_jobstep后再執(zhí)行系統(tǒng)存儲(chǔ)過程sp_add_jobserver,以便最高效率地將作業(yè)更改傳送給所有涉及的服務(wù)器。2.調(diào)度作業(yè)調(diào)度管理作業(yè)是實(shí)現(xiàn)管理任務(wù)自動(dòng)化的一種方式。可以定義作業(yè)在下列情況下運(yùn)行:當(dāng)SQLServerAgent服務(wù)啟動(dòng)時(shí);當(dāng)CPU使用率處于定義為空閑狀態(tài)的水平時(shí);在特定日期和時(shí)間運(yùn)行;按循環(huán)調(diào)度運(yùn)行;響應(yīng)警報(bào)。10.5.2作業(yè)及其管理3.指定作業(yè)響應(yīng)可以指定在作業(yè)完成之后產(chǎn)生作業(yè)響應(yīng)。典型的作業(yè)響應(yīng)包括下列幾個(gè):(1)使用電子郵件、電子呼叫或發(fā)送netsend消息通知操作員;若操作員需進(jìn)行重復(fù)操作,就應(yīng)使用這些作業(yè)響應(yīng)中的一種。(2)將事件消息寫入WindowsNT/2000應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論