设为首页 收藏本站
查看: 575|回复: 0

[经验分享] Ms Sql Server中Index Clustered與NonClustered的差異

[复制链接]

尚未签到

发表于 2015-7-5 08:52:08 | 显示全部楼层 |阅读模式
  說真的剛開始真不知道這有什麼差,不都是索引嗎,後來說了點時間看了MSDN才了解,先用我自己的意思解釋,在附上原文。
  
  Clustered : 資料與索引是儲放在一起,每個表格中只能有一個,資料必會排序過,速度快。
  
  NonClustered:資料與索引為分開儲放,就像C++的指標,索引會存儲資料的位置,資料可能沒有排序。
  
叢集索引結構

  在 SQL Server 中,索引的結構為 B 型樹狀目錄。索引 B 型樹狀目錄中的每個分頁稱為索引節點。B 型樹狀目錄的頂部節點稱為根節點。索引中的底層節點稱為分葉節點。根與分葉節點之間的任何索引層級通稱為中繼層級。在叢集索引中,分葉節點包含基礎資料表的資料頁。根和中繼層級節點包含保存索引資料列的索引頁。每個索引資料列都包含索引鍵值,以及指向 B 型樹狀目錄之中繼層級分頁或索引分葉層級之資料列的指標。索引每個層級中的分頁都以雙向連結串列方式連結。  
DSC0000.gif
  
非叢集索引結構

  非叢集索引擁有與叢集索引相同的 B 型樹狀目錄結構,不過有下列顯著的差異:  

  • 基礎資料表的資料列並未根據其非叢集索引鍵的順序,進行排序與儲存。
  • 非叢集索引的分葉層是由索引頁 (而不是資料頁) 所組成。

  非叢集索引可定義於具有叢集索引或堆積的資料表或檢視中。非叢集索引中的每個索引資料列,都包含非叢集索引鍵值和資料列定位器。這個定位器指向叢集索引或堆積中,擁有此索引鍵值的資料列。  
  非叢集索引資料列中的資料列定位器是資料列的指標,或資料列的叢集索引鍵,如下所述:  

  • 如果資料表為堆積 (表示沒有叢集索引),則資料列定位器為資料列的指標。該指標將以檔案識別碼 (識別碼)、頁碼與分頁中的資料列編號來建立。整個指標也稱為資料列識別碼 (RID)。
  • 如果資料表有叢集索引,或索引位於索引檢視中,則資料列定位器為資料列的叢集索引鍵。如果叢集索引並非唯一的索引,SQL Server 2005 會加入稱為 uniqueifier 之內部產生的值,讓任何重複的索引鍵變成唯一的索引鍵。使用者看不到這個四位元組的值。只有在必須讓叢集索引鍵變成唯一的索引鍵以便在非叢集索引使用時,才會加入此值。SQL Server 藉由使用非叢集索引之分葉資料列所儲存的叢集索引鍵來搜尋叢集索引,以便擷取資料列。
DSC0001.gif
  
資料來源
  資料表與索引架構
  用索引提高SQL Server性能

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83250-1-1.html 上篇帖子: 谈谈基于SQL Server 的Exception Handling[中篇] 下篇帖子: SQL Server 2005中导入.csv文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表