但是由于普通的GUID的分散性使得如果主鍵加上聚集索引(Clustered Index)會導致在插入記錄時效率大大降低

SQL SERV " /> 久久精品综合视频,色列里番h本全彩无遮挡影片,最近2019最新中文字幕3

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

使用NEWSEQUENTIALID解決GUID聚集索引問題

UNIQUEIDENTIFIER做主鍵(Primary Key)是一件很方便的事情,在數據合并等操作中有不可替代的優勢
但是由于普通的GUID的分散性使得如果主鍵加上聚集索引(Clustered Index)會導致在插入記錄時效率大大降低

SQL SERVER 2005中新增了一個NEWSEQUENTIALID的函數,MSDN的解釋是:
在指定計算機上創建大于先前通過該函數生成的任何 GUID 的 GUID。
NEWSEQUENTIALID() 不能在查詢中引用。
注:即只能做為數據庫列的DEFAULT VALUE,不能執行類似SELECT NEWSEQUENTIALID()的語句
只有當計算機沒有網卡時,NEWSEQUENTIALID() 生成的 GUID 才在該特定計算機中是唯一的。
注:這句話是錯誤的,應該是只有只有當計算機有網卡時,生成的GUID才是全球唯一
您可以使用 NEWSEQUENTIALID() 生成 GUID 以減少葉級別索引上的頁爭用。

但是使用NEWSEQUENTIALID卻不是那么一帆風順
1. 如何獲得生成的GUID
如果生成的GUID所在字段做為外鍵要被其他表使用,我們就需要得到這個生成的值
通常,PK是一個IDENTITY字段,我們可以在INSERT之后執行 SELECT SCOPE_IDENTITY()來獲得新生成的ID
但是由于NEWSEQUENTIALID()不是一個INDETITY類型,這個辦法是做不到了,而他本身又只能在默認值中使用,不可以事先SELECT好再插入,那么我們如何得到呢?有以下兩種方法:

--1. 定義臨時表變量 
DECLARE @outputTable TABLE(ID uniqueidentifier)
INSERT INTO TABLE1(col1, col2)
OUTPUT INSERTED.ID 
INTO @outputTable
VALUES('value1''value2')
SELECT ID FROM @outputTable

--2. 標記ID字段為ROWGUID(一個表只能有一個ROWGUID)
INSERT INTO TABLE1(col1, col2)
VALUES('value1''value2')
--在這里,ROWGUIDCOL其實相當于一個別名
SELECT ROWGUIDCOL FROM TABLE1

it知識庫使用NEWSEQUENTIALID解決GUID聚集索引問題,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久久久久久久久综合情日本 | 亚洲欧美日韩第一页 | 激情综合图区 | 亚洲美女人黄网成人女 | 最新国产在线视频 | 欧美激情片网站 | 亚洲综合色在线观看 | 五月激情丁香婷婷综合第九 | 亚洲一二三四 | 四虎永久免费在线 | 国产午夜亚洲精品不卡福利 | 欧美在线一二三区 | 美女黄色在线观看 | 免费一区二区三区四区五区 | 不卡的毛片 | 国产精品四虎在线观看免费 | 欧美另类极品videosbest视 | 91在线视频精品 | 久久久夜色精品国产噜噜 | 91在线免费视频 | 久久精品视频2 | 黄网站视频观看免费 | 成人第一页 | 日本高清色视频在线观看免费 | 极品美女国产精品免费一区 | 国产精品中文字幕在线观看 | 91热国内精品永久免费观看 | 五月婷婷色 | 亚洲日本中文字幕在线2022 | 日韩激情视频 | 美女视频永久黄网站免费观看韩国 | 激情小说激情视频激情图片 | 国产美女91视频 | 国产欧美一区二区三区观看 | 欧美国产综合在线 | 激情六月丁香婷婷四房播 | 天天狠狠色综合图片区 | 亚洲深爱| 久久精品国产精品青草 | 国内精品一区二区三区最新 | 顶级欧美色妇xxxxx |