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

SQL SERV " /> 最新国产精品自拍,成人一级免费视频,国产人成亚洲第一网站在线播放

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

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

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

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

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

--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聚集索引問題,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 大杳焦伊人久久综合热 | 美女扒开腿被男人猛视频 | 色综合天| 精品国产乱码一区二区三区 | 四虎影永久在线观看精品 | 中文字幕一区二区精品区 | 婷婷99精品国产97久久综合 | 美女很黄很黄是免费的·无遮挡网站 | 婷色| 黄色片网站在线免费观看 | 怡红院免费的全部视频 | 日韩精品高清自在线 | 四虎永久在线精品视频播放 | 91精品国产免费久久久久久 | 91视频啪啪 | 亚洲伦理一区二区 | 亚洲伊人成人网 | 国内自拍第1页 | 青草五月天 | 黄色片视频在线播放 | 人人干在线 | 天天操天天透 | 黄网站在线免费 | 麻豆精品密在线观看 | 国产激情一级毛片久久久 | 丝袜精品 欧美 亚洲 自拍 | 五月婷婷丁香在线观看 | 国产精品资源在线观看 | 五月天色婷婷综合 | 99精品视频看国产啪视频 | 国产午夜精品一区二区 | 色综合视频一区二区三区 | 91精品国产福利尤物免费 | 亚洲一二三区视频 | 亚洲欧美日韩不卡 | 国产成人精品在视频 | 中文字幕在线一区二区三区 | 精品欧美一区二区精品久久 | 国产高清免费视频 | 欧美一区二区三区婷婷月色 | 四虎影视永久在线精品免费播放 |