成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server數據表提示NOLOCK與READPAST

數據庫 SQL Server
我們今天主要描述常用的SQL Server數據表提示,NOLOCK與READPAST,愿在你學習常用的SQL Server數據表提示,即NOLOCK與READPAST中以起到拋磚引玉的作用。

此本文主要介紹了兩種常用的SQL Server數據表提示,NOLOCK與READPAST,我前兩天在相關網站看見SQL Server數據表提示,NOLOCK與READPAST的資料,覺得挺好,就拿出來供大家分享。

在其實際操作中我們主要是建立一個數據表用作例子中查詢數據表。執行列表A中的腳本建立一個關于SalesHistory數據表并添加一些數據。

NOLOCK

該SQL Server數據表提示,也稱為READUNCOMMITTED,只能用于SELECT語句。NOLOCK表明沒有對數據表添加共享鎖以阻止其它事務對數據表數據的修改。

該語句的好處是它可以使數據庫引擎不用在處理查詢中的上鎖問題,可以提高并發性并改善數據庫性能,因為數據庫引擎不用在維護共享鎖的使用問題。存在的問題是因為該語句不能處理要讀取的數據表的所有鎖,所以一些“臟數據”或未被提交的數據潛在的可能被讀取。

如果某個事務被滾回,那么應用了NOLOCK連接的數據讀取操作將可以讀取未提交的數據。這種類型的讀取導致處理的不一致性會帶來很多問題。這是你使用NOLOCK時應該了解的技巧。

作為一個負面影響,NOLOCK查詢還可能帶來讀取“幻影”數據或讀取在一個數據庫讀取事務中可以獲得的但在另一個事務中可能被滾回的數據的風險。(我將在本系列文章的第二部分對這個負面影響進行詳細說明。)

下面的例子展示了NOLOCK如何工作以及臟數據讀取是如何產生的。在下面的腳本中,我用一個事務在SalesHistory數據表中插入一條記錄。

  1. BEGIN TRANSACTION   
  2. INSERT INTO SalesHistory   
  3. (Product, SaleDate, SalePrice)   
  4. VALUES   
  5. ('PoolTable', GETDATE(), 500)  

這個事務仍舊是開放的,這意味著仍可以對插入數據表的記錄上鎖以阻止其它操作。在一個新的查詢窗口中,運行下面的腳本,該腳本使用NOLOCKSQL Server數據表提示返回SalesHistory數據表中的記錄數。

  1. SELECT COUNT(*) FROM SalesHistory WITH(NOLOCK)  

返回記錄數值為301。因為對SalesHistory數據表插入記錄的事務還沒有提交,所以我們可以撤銷它。我通過使用下面的語句將事務滾回:

  1. ROLLBACK TRANSACTION  

該語句從SalesHistory數據表中刪除前面插入的記錄。現在我們運行前面運行的同樣的SELECT語句。

  1. SELECT COUNT(*) FROM SalesHistory WITH(NOLOCK)  

這次返回記錄數的值為300。我***次查詢讀記錄的事務還沒有提交,這就是一個臟數據讀取。

  1. READPAST  

這是一個比NOLOCK較少使用的數據表提示。這個提示指明數據庫引擎返回結果時忽略加鎖的行或數據頁。

這個數據表提示的優點和NOLOCK一樣,在處理查詢時不會發生阻塞。此外,讀臟數據并不會出現在READPASTA中,因為不會返回鎖定的記錄。這個語句的缺點是,因為不返回鎖定的記錄,所以很難確定結果集或修改語句是否包含所有必須的記錄。在你的應用中可能需要添加一些邏輯來確保最終包含所有必須的記錄。

READPAST數據表提示的例子和NOLOCK的例子類似。我將使用一個事務來更新SalesHistory數據表中的一個記錄。

  1. BEGIN TRANSACTION   
  2. UPDATE ***) SalesHistory   
  3. SET SalePriceSalePrice = SalePrice + 1  

因為我沒有提交或回滾這個事務,所以添加在更新記錄上的鎖仍舊有效。在一個新的查詢編輯窗口中,運行下面的腳本,該腳本對SalesHistory數據表使用READPAST統計表中的記錄數。

  1. SELECT COUNT(*)   
  2. FROM SalesHistory WITH(READPAST)  

最初SalesHistory數據表中包含300條記錄,UPDATE語句正鎖定表中一條記錄,所以上面使用READPAST的腳本返回結果為299條記錄,這說明我要更新的記錄被鎖定,所以被REASPAST提示忽略。

以上的相關內容就是介紹兩種SQL Server數據表提示的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server視圖運行的提高與索引
  2. SQL Server數據庫修復用SQL語句,很簡單!
  3. SQL Server性能進行提高的4項技術概述
  4. SQL Server使用convert對datetime日期數據進行獲取
  5. SQL Server數據轉換服務的妙招之一

 

責任編輯:佚名 來源: 人民郵電出版社
相關推薦

2011-08-18 09:14:32

SQL Server臟讀

2011-08-18 10:07:53

SQL Server臟NOLOCKREADPAST

2010-07-22 10:30:36

SQL Server數

2011-08-11 09:12:31

SQL Server nolock

2009-09-07 16:13:14

LINQ to SQL

2010-06-18 11:04:39

SQL Server

2010-07-22 16:02:29

2021-10-13 06:49:13

SQL Server優化

2011-02-21 13:06:34

SQL Servr 2

2010-07-26 17:36:44

SQL Server數

2010-11-29 13:22:45

sybase數據表

2025-02-18 08:10:00

SQL數據表數據庫

2010-07-19 09:50:58

SQL Server2

2023-02-02 11:53:44

nolock關鍵詞SQLserver

2010-11-22 13:53:46

MySQL數據表

2023-04-06 08:43:29

SQLWITH(NOLOCK

2010-05-18 17:17:02

MySQL數據表

2011-02-21 13:41:14

SQL Server

2010-07-16 08:50:00

SQL Server表

2011-08-25 14:10:00

SQL ServerDB2修改數據表列
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久欧美精品 | 在线看片网站 | 一级黄色短片 | 国产女人第一次做爰毛片 | 久久久精品一区二区 | 古装人性做爰av网站 | 国产精品久久久久久久久久免费 | 成人老司机 | 国产精品日日摸夜夜添夜夜av | 国产精品不卡 | 91精品久久| 欧美婷婷 | 狠狠操狠狠干 | 亚洲日本乱码在线观看 | 天天噜天天干 | 国产在线一区二区三区 | 亚洲欧美在线视频 | 日韩一二三区视频 | 亚洲视频在线观看 | 国产精品久久久久久亚洲调教 | 国产黄色大片在线免费观看 | 国产一级视频 | 国产精品久久久久久久久久妇女 | 第四色播日韩第一页 | 中文天堂在线一区 | 黄视频欧美 | 美女视频一区二区三区 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲国产aⅴ精品 | 99爱在线观看 | 久久午夜视频 | 国产精品美女www爽爽爽 | 国产精品久久在线观看 | caoporn国产精品免费公开 | 久热免费在线 | 色综合网站 | 国产一区二区视频免费在线观看 | 99re6在线视频精品免费 | 午夜视频在线观看网址 | 亚洲国产成人精品女人久久久 | 欧美日韩视频一区二区 |