国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解讀SQL Server 2008變更跟蹤

數據庫 SQL Server
本篇文章介紹了變更跟蹤,并講述了怎樣在數據庫、表上激活變更跟蹤,以及怎樣打開各種選項,例如AUTO_CLEANUP、TRACK_COLUMNS_UPDATED。

一些應用程序是設計成將數據從一個中央數據庫拿到一個本地緩存中,舉例來說,到處奔走的銷售人員只是偶爾連接到中央數據庫來獲取***的庫存量數據。或者業(yè)務邏輯的重型處理是從產品數據庫服務器上脫機下載下來的,本地進行處理然后發(fā)送回產品數據庫。這些應用程序需要某種方法來跟蹤數據變更,以便知道什么數據被改變了。

SQL Server 2008之前,應用程序開發(fā)人員需要使用觸發(fā)器或時間戳字段來實現定制跟蹤解決方案,并創(chuàng)建額外的表以便跟蹤數據變更。而我們都知道,觸發(fā)器是很昂貴的。DML操作中所涉及的每個表通過一個用于觸發(fā)器展示的內部函數遞歸檢查。此外,因為觸發(fā)器是作為啟動它們的事務的一部分來執(zhí)行的,導致它們需要更長的時間來提交,而且引起負載的鎖問題。SQL Server 2008提供了一個新特性,變更跟蹤。

變更跟蹤對于建立單向和雙向的同步應用程序來說是很好的,它被設計為使用用于ADO.NET的Sync Services。應用程序開發(fā)人員可以使用變更跟蹤來同步SQL Server數據庫間的任何數據,或甚至是在SQL Server和非SQL Server數據庫之間。與復制相比,變更跟蹤更適合于開發(fā)人員而不是數據庫管理員,因為它提供給開發(fā)人員一個靈活的基礎來使用.NET建立同步應用程序,但是它缺乏存儲過程的支持或內置的監(jiān)控工具,比如Replication Monitor。

在一個已有的表上激活變更跟蹤并不需要對表結構進行任何改變。唯一的要求是這個表必須已有一個主鍵。變更跟蹤信息同步地在事務提交時進行了記錄,所以它展示的DML操作順序是正確的。盡管變更跟蹤是和事務同步執(zhí)行的,但是它的執(zhí)行成本和觸發(fā)器相比是非常高的。此外,它只捕捉變更記錄主鍵字段的值,并在變更跟蹤表中記錄這些值。這些值會被連接到基礎表以獲得變更的數據。與變更數據捕獲相比,它的存儲成本要低,因為在變更跟蹤表中不捕獲非主鍵字段。但是,因為對數據記錄來說,能夠被查詢的只是凈變化,而不是中間的變化,變更跟蹤不適合于審計。

本篇文章中,我們將介紹怎樣對數據庫AdventureWorks2008中的表HumanResources.Department建立變更跟蹤以及怎樣查詢變更的數據。在你對表激活變更跟蹤之前,你需要對這個數據庫激活變更跟蹤。執(zhí)行下面的命令在數據庫AdventureWorks2008上激活變更跟蹤。

  1. ALTER DATABASE AdventureWorks2008   
  2. SET CHANGE_TRACKING = ON   
  3. (AUTO_CLEANUP=ONCHANGE_RETENTION=8 hours)   
  4. GO  

當這個命令運行時,當AUTO_CLEANUP選項設置為打開時,它還激活變更跟蹤信息的自動清理。保留時間設置為至少8小時。每30分鐘會有一個內部任務運行一次來刪除舊的事務。SQL Server 也將使用事務信息填充到一個內部系統表sys.syscommittab中去。這個表將對每個引起數據庫中跟蹤表上數據修改的事務具有一條記錄。盡管這個表不能在非DAC連接中查看到,但是這個表中的信息是通過一個DMV——sys.dm_tran_commit_table ——暴露的。下面是這個DMV中的字段。

commit_ts:一個遞增的數字,它是作為用于每個提交的事務的一個數據庫特定的時間戳。

xdes_id:一個用于事務的數據庫特定的內部ID。

commit_lbn:日志塊的數目,它包含事務的提交日志記錄。

commit_csn:事務的實例特定的提交順序數字。

commit_time:事務提交的時間。

如果你在這個數據庫上從沒激活過變更跟蹤,那么這個DMV是空的。

  1. select * from sys.dm_tran_commit_table 

要在表HumanResources.Department上激活變更跟蹤,那么運行下面的命令。

  1. ALTER TABLE HumanResources.Department  
  2.  
  3. ENABLE CHANGE_TRACKING  
  4.  
  5. GO  

這個命令創(chuàng)建一個內部表,它被用來記錄對表HumanResources.Department所做的變更。這個表的名稱是change_tracking_[tableObjectID]。因為它是一個內部表,所以它只能在DAC連接中查看。在我們的例子中,表HumanResources.Department的對象ID是757577737,因此這個表的名稱是“change_tracking_757577737”。這個表如下所示是空的,這是因為我們沒有對表HumanResources.Department做任何修改,下面是這個表的字段。

sys_change_xdes_id:修改記錄的事務的事務ID。

sys_change_xdes_id_seq:事務中操作的順序標識。

sys_change_operation:影響記錄的操作類型:插入、更新或刪除。

sys_change_columns:修改了的字段的列表(用于更新,只有當字段跟蹤被激活時)。

sys_change_context:在DML操作過程中使用WITH CHANGE_ TRACKING_CONTEXT選項所提供的應用程序特定的上下文信息。

k_[name]_[ord]:從目標表獲得的主鍵字段。[name]是主鍵字段的名稱,[ord]是主鍵中的順序位置,而[type]是這個字段的數據類型。

因為表HumanResources.Department在主鍵上只有一個字段——DepartmentID,所以在變更跟蹤表中只有一個主鍵字段k_DepartmentID_00000001。sys_change_columns字段可以被用來跟蹤對于每個更新操作哪些字段被修改了。(插入和刪除語句總是改變所有的字段,所以這個字段對于插入和刪除總是NULL)。通過在這個表上激活字段跟蹤,你可以獲得只從這些更新了的字段而來的數據。這將限制返回和通過網絡轉移的數據的數量。這還將更有效地合并增加數據的變更,因為大規(guī)模字段——例如varbinary(max)和xml——只在它們被更新了才返回。要激活字段跟蹤,設置TRACK_COLUMNS_UPDATED選項。

  1. ALTER TABLE HumanResources.Department  
  2. ENABLE CHANGE_TRACKING  
  3. WITH (TRACK_COLUMNS_UPDATED = ON

你還會使用sys_change_context字段來跟蹤表發(fā)生變更的上下文。這個上下文是由生成DML語句的客戶端提供的。它可以是一個常量,例如一個應用ID。一個示例更新語句如下所示。

  1. DECLARE @originator_id varbinary(128)   
  2. SET @originator_id = CAST('MyApplication' AS varbinary(128))   
  3. WITH CHANGE_TRACKING_CONTEXT (@originator_id)   
  4. UPDATE HumanResources.Department   
  5. SET GroupName='Accounting'   
  6. WHERE DepartmentID=10  

如果你想關閉數據庫上的變更跟蹤,那么你需要首先關閉這個數據庫中所有表的變更跟蹤。你可以從sys.change_tracking_tables目錄視圖中查找這樣表的列表。下面是一個生成所有ALTER TABLE語句的簡單SQL語句。

  1. SELECT 'ALTER TABLE ' + object_name(object_id) + ' DISABLE CHANGE_TRACKING;'  
  2. FROM sys.change_tracking_tables 

在你關閉了表的變更跟蹤之后,運行下面的命令來關閉數據庫的變更跟蹤。

  1. ALTER DATABASE AdventureWorks2008 SET CHANGE_TRACKING = OFF 

【編輯推薦】

  1. SQL Server 2008行數據和頁數據壓縮解密
  2. 圖解SQL Server 2008 R2主數據服務安裝
  3. 理解SQL Server 2008索引的存儲結構
  4. SQL Server移動系統數據庫開發(fā)詳解
  5. SQL Server 2008 R2十大新特性解析
責任編輯:王曉東 來源: IT專家網
相關推薦

2011-08-25 13:41:50

SQL Server 變更跟蹤

2012-04-13 13:26:30

SQL Server

2010-12-17 09:11:41

SQL Server

2011-03-07 09:51:08

備份工具Ntbackup

2009-04-16 17:55:15

擴展熱插拔SQL Server

2010-09-13 10:10:07

SQL Server2

2011-02-18 17:31:18

SQL Server

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:34:19

2009-04-16 17:44:31

2011-03-29 12:42:25

SQL Server 高效性

2009-02-24 13:15:22

FILESTREAM新特性SQL Server

2011-04-07 09:56:53

SQL Server 內存

2011-07-11 13:16:19

SQL TraceSQL Profile

2011-03-29 12:32:05

SQL Server 可信任性

2011-03-15 13:57:46

2009-04-27 15:02:42

SQL Server 數據庫引擎升級

2010-06-28 15:59:09

SQL Server

2012-09-04 13:43:31

SQL Server

2009-04-16 17:03:12

報表開發(fā)工具報表制作SQL Server
點贊
收藏

51CTO技術棧公眾號

久久av一区二区三区漫画| 日本乱人伦a精品| 欧美13一16娇小xxxx| 午夜激情综合网| yiren22综合网成人| 欧美不卡视频一区| 91在线|亚洲| 性欧美xxxx大乳国产app| 国产免费一区二区三区四在线播放| 国产福利一区二区三区视频在线| 国产 福利 在线| 亚洲国产人成综合网站| av资源网在线观看| 在线视频日韩精品| 久久精品国产68国产精品亚洲| 国产一区免费视频| 成人黄色综合网站| 久草在线看片| 亚洲精品国产免费| 先锋影音国产精品| 青青草原成人| 国产日韩精品一区二区浪潮av| 亚洲激情文学| 国产性猛交xxxx免费看久久| 日日狠狠久久偷偷综合色| 久久精彩视频| 国产精品人妖ts系列视频| 日本成人网址| 国内揄拍国内精品| 麻豆精品一二三| 一个人看的www一区| 中文字幕九色91在线| 欧美午夜视频| 在线观看的毛片| 欧美一区永久视频免费观看| 盗摄牛牛av影视一区二区| 国产日韩欧美一区二区三区四区| 99精品视频一区二区| www.99久久热国产日韩欧美.com| 亚洲成人日韩| 日本成人中文字幕在线| 5566中文字幕一区二区电影| 精品欠久久久中文字幕加勒比| 欧美一区激情视频在线观看| 亚洲激情在线激情| 国产福利亚洲| 久久精品magnetxturnbtih| 国产精品嫩草久久久久| 超碰在线cao| 91久久精品日日躁夜夜躁国产| 久久综合国产精品| 超碰在线99| 国产精品我不卡| 亚洲欧美区自拍先锋| 91tv亚洲精品香蕉国产一区| 激情伦成人综合小说| 亚洲另类春色国产| 成人在线视频免费| 日韩欧美视频一区二区| 性做久久久久久免费观看| 日韩精品一区二区三区中文字幕 | 日韩精品中午字幕| 成人免费在线播放| 亚洲综合色在线观看| 在线视频欧美日韩精品| 热久久久久久久| 毛片免费在线播放| 国产精品激情自拍| 中文字幕一区二区三区蜜月| 四虎地址8848精品| 日韩极品视频在线观看| 亚洲精品av在线| 精品福利视频导航大全| 久久的精品视频| 国产精品一二三区| 草草在线视频| 一区二区三区四区五区精品 | 国产又粗又猛又爽又黄的网站 | 天天影视色香欲综合网老头| 国产精品一区二区三区美女| 国产精品333| 最近2019中文字幕大全第二页 | 国产日韩精品视频一区| 韩日精品一区| 天堂а√在线中文在线| 日韩精品久久久久久福利| 日本亚洲三级在线| 最新黄网在线观看| 精品免费视频123区| 欧美日韩午夜在线视频| 激情综合久久| 国产精品无码2021在线观看| 91久久精品国产91久久性色tv| 亚洲国产精品久久久久婷婷884| 久久成人av| 诱人的瑜伽老师3hd中字| 日本成人免费在线| 亚洲一区二区综合| 欧美在线二区| 日本在线免费网| 日韩欧美在线一区二区| 亚洲精品国精品久久99热一| 精品一区精品二区高清| 色8久久影院午夜场| 啊啊啊一区二区| 国模吧一区二区三区| 一级日本不卡的影视| 亚洲国产一区二区三区在线播放 | 亚洲精品少妇网址| 成人激情免费网站| 97视频一区| 中文字幕毛片| 好看的日韩精品视频在线| 精品成人一区二区三区四区| 国产伦精品一区二区三区免费迷| 亚洲伦理影院| 日本三级黄色网址| 亚洲影视九九影院在线观看| 日韩欧美的一区| av在线播放一区二区三区| 日韩mv欧美mv国产网站| 国产大学生校花援交在线播放 | 一区二区三区四区精品视频| 国产偷激情在线| 国产福利久久| 亚洲欧美激情四射在线日| 中文字幕免费不卡在线| 在线国产一区二区| 午夜影视一区二区三区| 成人免费在线观看视频网站| 91免费国产网站| 亚洲激情久久久| 国产精品美女久久久久aⅴ| 亚洲视频电影在线| 深夜av在线| 交视频在线观看国产| 久久精品日产第一区二区三区精品版 | 丰满诱人av在线播放| 5月婷婷6月丁香| 成人国产精品一区二区| 亚洲电影免费观看高清完整版在线观看 | 欧美黄色三级网站| 色婷婷精品大在线视频| 激情伊人五月天久久综合| 超碰影院在线观看| 日韩暖暖在线视频| 欧美r级在线观看| 亚洲人成小说网站色在线| 亚洲区欧美区| 久久在线观看| 在线国产91| www浪潮av99com| 色视频一区二区三区| 欧美在线一区二区三区四| 亚洲精品成人久久久| 亚洲地区一二三色| 波波电影院一区二区三区| 好吊视频一区二区三区四区| 日韩一区二区三区色| 宅男在线观看免费高清网站| 成人av影视| www.国产二区| av在线不卡观看| 97婷婷大伊香蕉精品视频| 亚洲黄一区二区| 欧美在线观看视频一区二区| 欧美激情一区二区三区四区| 美日韩一区二区| 欧美成人综合| 久久亚洲黄色| 欧美理论影院| 免费黄色网址在线观看| 国产乱妇乱子| 美女av免费在线观看| 天堂资源在线亚洲视频| 国产伦精品免费视频| 欧美另类在线观看| 精品亚洲精品福利线在观看| 欧美曰成人黄网| 亚洲高清在线精品| 久久九九国产精品| 精品中文字幕一区二区小辣椒| 青青草91久久久久久久久| 曰本一区二区| 欧美日韩国产观看视频| 伊人免费在线| 你懂得网站在线| 淫视频在线观看| 麻豆传传媒久久久爱| 国产高清不卡无码视频| 日本不卡二区| 国产伦精品一区二区三区在线 | 日韩中文字幕a| 亚洲激情77| 亚洲精品成人少妇| 久久在线免费观看视频| 亚洲中文字幕无码av永久| 亚洲免费视频一区二区三区| 国产精品久久久久久久久久辛辛 | 黄色av资源|