国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

掌握SQL Server數據庫快照的工作原理第1/2頁

2020-10-29 21:55:50
字體:
來源:轉載
供稿:網友

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



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



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


一個快照的實例 



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


USE master 
GO 
IF EXISTS(SELECT name from 
sysdatabases where [name] = 'SourceDatabase') 
DROP DATABASE SourceDatabase 
GO 
CREATE DATABASE SourceDatabaseON PRIMARY 

NAME = SourceDatabase_Data, 
FILENAME = 'C:SQLServerSourceDatabase_Data.mdf' 
) LOG ON 

NAME = SourceDatabase_Log, 
FILENAME = 'C:SQLServerSourceDatabase_Log.ldf' 

GO






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



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


USE SourceDatabase 
  GO 
  IF OBJECT_ID('SalesHistory')>0 DROP 
TABLE SalesHistory 
  GO 
  CREATE TABLE SalesHistory 
  (SaleID INT IDENTITY(1,1), 
  Product CHAR(150), SaleDate DATETIME, 
  SalePrice MONEY) 
  DECLARE @i INT 
  SET @i = 1 
  WHILE (@i <=10000) 
  BEGIN INSERT INTO SalesHistory 
  (Product, SaleDate, SalePrice) 
  VALUES ('Computer', DATEADD(mm, @i, '3/11/1919'), 
  DATEPART(ms, GETDATE()) + (@i + 57) ) 
  INSERT INTO SalesHistory 
  (Product, SaleDate, SalePrice) 
  VALUES ('BigScreen', DATEADD(mm, @i, '3/11/1927'), 
  DATEPART(ms, GETDATE()) + (@i + 13) ) 
  INSERT INTO SalesHistory 
  (Product, SaleDate, SalePrice) 
  VALUES ('PoolTable', DATEADD(mm, @i, '3/11/1908'), 
  DATEPART(ms, GETDATE()) + (@i + 29) ) 
  SET @i = @i + 1 
  END 
  GO 
12下一頁閱讀全文
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳区| 伊吾县| 龙陵县| 昌平区| 海原县| 阳西县| 郓城县| 淮安市| 麻栗坡县| 汝南县| 沙田区| 苏尼特左旗| 六盘水市| 塔城市| 丰都县| 囊谦县| 四川省| 海盐县| 游戏| 衡阳市| 锡林郭勒盟| 华亭县| 芦溪县| 大关县| 南木林县| 定南县| 宿迁市| 镇江市| 宜阳县| 贵州省| 秀山| 银川市| 广河县| 周宁县| 繁昌县| 乐东| 文安县| 靖安县| 泰安市| 民乐县| 长宁区|