国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 掌握SQL Server數據庫快照的工作原理

掌握SQL Server數據庫快照的工作原理

2021-09-08 17:00SQL教程網 Sql Server

現在,讓我們來看看數據庫快照在SQLServer2005中是如何工作的。為此,首先我需要一個源數據庫作為快照的來源。下面的腳本將創建一個源數據庫

數據庫快照是怎樣工作的?

可以使用典型的數據庫命令CREATEDATABASE語句來生成一個數據庫快照,在聲明中有一個源數據庫快照的附加說明。當快照被建立時,同時生成一個稀疏文件。這個文件(只能使用在NTFS卷中)在初始化的時候并沒有磁盤空間分配給它——盡管你可能在WINDOWS資源管理器中看到了文件的大小,它會看上去與原始的源數據庫文件的大小相同。對磁盤來說其實這個文件的大小接近于零。

數據庫快照在初始化時讀的數據文件是來自于源數據庫的。當源數據庫的數據發生變化時,數據引擎就會將原始數據從源數據庫拷貝到快照數據庫中。這個技術確保快照數據庫只反映快照被執行時數據的狀態。當SELECT命令被用來發布反對數據庫快照時,不管數據頁的讀取是否被定位在源數據庫數據文件中還是在快照數據庫數據文件中都是沒有鎖被發布的。因為在只讀數據庫快照中是沒有鎖被發布,數據庫快照對于報表解決方案是一個重要的解決方案。

一個快照的實例

現在,讓我們來看看數據庫快照在SQLServer2005中是如何工作的。為此,首先我需要一個源數據庫作為快照的來源。下面的腳本將創建一個源數據庫:

USEmaster

GO

IFEXISTS(SELECTnamefrom

sysdatabaseswhere[name]='SourceDatabase')

DROPDATABASESourceDatabase

GO

CREATEDATABASESourceDatabaseONPRIMARY

(

NAME=SourceDatabase_Data,

FILENAME='C:SQLServerSourceDatabase_Data.mdf'

)LOGON

(

NAME=SourceDatabase_Log,

FILENAME='C:SQLServerSourceDatabase_Log.ldf'

)

GO

注意這里產品區域的大小。我定義它的大小為CHAR(150)來強調數據文件的增長級數,這樣在我接下來的實例中將更容易解釋清楚快照是如何工作的。

現在既然我已經有了一個源數據庫,現在我裝載一些數據來擴展數據文件的大小位。如此,使用上面的腳本來創建銷售歷史表。

USESourceDatabase

GO

IFOBJECT_ID('SalesHistory')>0DROP

TABLESalesHistory

GO

CREATETABLESalesHistory

(SaleIDINTIDENTITY(1,1),

ProductCHAR(150),SaleDateDATETIME,

SalePriceMONEY)

DECLARE@iINT

SET@i=1

WHILE(@i<=10000)

BEGININSERTINTOSalesHistory

(Product,SaleDate,SalePrice)

VALUES('Computer',DATEADD(mm,@i,'3/11/1919'),

DATEPART(ms,GETDATE())+(@i+57))

INSERTINTOSalesHistory

(Product,SaleDate,SalePrice)

VALUES('BigScreen',DATEADD(mm,@i,'3/11/1927'),

DATEPART(ms,GETDATE())+(@i+13))

INSERTINTOSalesHistory

(Product,SaleDate,SalePrice)

VALUES('PoolTable',DATEADD(mm,@i,'3/11/1908'),

DATEPART(ms,GETDATE())+(@i+29))

SET@i=@i+1

END

GO

一旦你運行以下的腳本,就可以來操縱數據庫文件儲存的地方了。在這個實例上面,我將這些文件放在C:SQLServer文件夾下。在我的計算機上,當數據庫被初始化創建時數據文件的大小是1,216KB,數據裝載后的大小是7,360KB。既然源數據庫有一些數據已經在里面了,所以我們現在就能建立一個快照了。使用以下的腳本來建立數據庫快照。

CREATEDATABASESnapshotDatabase

ON

(

NAME='SourceDatabase_Data',

FILENAME='C:SQLServerSnapshotDatabase.mdf'

)ASSNAPSHOTOFSourceDatabase

這個創建快照的語法與創建數據庫的語法非常相似。兩個主要的區別:第一個區別是ASSNAPSHOTOFSourceDatabase語句,在服務器實例上指明哪個數據庫將作為快照的源數據庫;第二個區別是,在事實上數據庫快照是不會生成日志文件的。因為沒有數據操作事物只會發生在只讀數據庫上,所以沒有也不需要日志。

這個數據庫腳本創建一個名為SnapshotDatabase.mdf(數據文件的擴展名不需要mdf)的稀疏文件。如果你在WINDOWS資源管理器中操作這個文件,并同時查看它的屬性,你將看到這個文件的大小與源數據庫文件的大小相同;然而,實際上磁盤上的大小卻接近于零。這時,數據庫快照是沒有它自己的數據。

你能運行上面我使用的腳本重新在SourceDatabase數據庫里面插入10,000行數據到SalesHistory表中。這時,我的SourceDatabase數據庫大小是12,480KB,同時,磁盤上我的SourceDatabase數據庫大小現在為448KB。這時在SourceDatabase數據庫中所改變的數據頁都已經被拷貝到SnapshotDatabase數據庫中了,這樣就能解釋為什么在磁盤上它的大小被增加了。

總結:

數據庫快照允許你為報表創建只讀數據庫,并且如果有必要的話你可以恢復你的源數據庫到你的數據庫快照上。同樣的,你也可以根據你的報表目的創建任意多個數據庫快照。

特別值得注意的是,這些數據庫快照會占用磁盤空間,如果有太多的數據庫快照的話,它將很快的將你的磁盤陣列填滿,尤其在一個產品環境下,如果數據經常要被更新,就更容易將磁盤陣列填滿。

另外,使用數據庫快照會降低數據庫的性能,因為在數據庫中將數據頁作為執行寫操作拷貝是增加了數據庫輸入/輸出。

雖然有這些小缺點,如果你能為報表提出一個好的數據庫快照創建方案,SQLServer2005的這個新的特性將有更多的人使用。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 中文字幕在线播放一区 | 亚洲成av人影片在线观看 | 成人黄色在线观看 | 欧美综合区 | 一本大道专区 | 欧美日韩激情一区 | 人人干视频| 精品久久一二三区 | 精品乱码一区二区三四区 | 91亚洲精品在线观看 | 国产一区二区三区在线免费 | 狼人综干网 | 黄色一级片免费 | 国产高清一级片 | 亚洲电影在线观看 | 亚洲自拍小视频 | 欧美精品福利视频 | 成人欧美一区二区三区白人 | 久久久久久高清 | 精品一区二区三区在线观看 | 99这里只有精品视频 | 国产麻豆乱码精品一区二区三区 | 日韩综合一区 | 久久精品一区二区三区四区 | 亚洲九区 | 亚洲啊v| 在线视频亚洲 | 亚洲电影在线 | 在线观看av片| 精品国产乱码久久久久久88av | 成年人毛片在线观看 | 欧美精品在线一区二区三区 | 综合久久99 | 国产一区二区三区在线 | 日韩不卡一区二区三区 | 欧美激情一区二区三级高清视频 | 国偷自产av一区二区三区 | 久久久久网站 | 国产亚洲一区二区三区 | 青青草一区二区 | 亚洲一页 |