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

SQL Server 索引的底層實(shí)現(xiàn)概述

數(shù)據(jù)庫(kù) SQL Server
此文章主要介紹的是SQL Server 索引的底層實(shí)現(xiàn),還有對(duì)SQL Server 數(shù)據(jù)庫(kù)的索引索引結(jié)構(gòu)(Index Structure)的描述。

文章主要描述的是SQL Server 索引的底層實(shí)現(xiàn),本文的關(guān)鍵字為聚集索引 非聚集索引 clustered index,你的表(Tables)中數(shù)據(jù)實(shí)際上都存儲(chǔ)在頁(yè)(pages)之中的除了BLOB類(lèi)型的數(shù)據(jù)。如果某列的字段的類(lèi)型為BLOB那么將有一個(gè)16字節(jié)的指針指向BLOB page。

頁(yè)是MS SQL Server中數(shù)據(jù)存儲(chǔ)的最小單位。每頁(yè)包含以行(row)為單位保存數(shù)據(jù)。一行只能存儲(chǔ)在一個(gè)頁(yè)中。每頁(yè)可以容納8KB的信息。因?yàn)檫@個(gè)原因,每行的最大值為8KB。一組相鄰的8個(gè)頁(yè)被稱(chēng)為一個(gè)盤(pán)區(qū)(Extent)

堆文件和分配映射SQL Server 索引(Heap and the Index Allocation Map(IAM))

堆文件在sysindexs表中只有一行記錄,并且其indid = 0. sysindexs.FIRSTIAM字段指向了IAM頁(yè)鏈表中一個(gè)IAM頁(yè),IAM頁(yè)是用來(lái)管理SQL Server已經(jīng)給堆文件分配的空間。MS SQL Server2000用IAM(Index Allocation Map)頁(yè)來(lái)在堆文件中導(dǎo)航(navigate)。

在堆文件中,數(shù)據(jù)頁(yè)(data page)和數(shù)據(jù)頁(yè)中數(shù)據(jù)沒(méi)有按照特定的順序存儲(chǔ),也沒(méi)有鏈接在一起。數(shù)據(jù)頁(yè)之間唯一的邏輯鏈接是通過(guò)IAM頁(yè)中記錄來(lái)實(shí)現(xiàn)的。

SQL Server 索引底層實(shí)現(xiàn)

SQL Server 索引索引結(jié)構(gòu)(Index Structure)

所有的SQL Server 索引都是 B-Trees。在這種樹(shù)的頂端有一個(gè)根頁(yè)(root page),通過(guò)root page來(lái)訪問(wèn)N個(gè)中級(jí)(intermediate level)頁(yè),直到樹(shù)的底部、或葉級(jí)(leaf level)。可以通過(guò)樹(shù)中每個(gè)節(jié)點(diǎn)的指針從上向下掃描整個(gè)索引樹(shù)。

另外,每個(gè)索引級(jí)(index leves)(可能是intermediate leve or leaf level)都有一個(gè)頁(yè)鏈(page chain)。在一個(gè)索引中有許多intermediate level。索引樹(shù)的級(jí)數(shù)(樹(shù)的高度)與索引碼的寬度、索引類(lèi)型、記錄行數(shù)和表中的頁(yè)數(shù)有關(guān),并且索引樹(shù)的級(jí)數(shù)是影響索引性能的一個(gè)重要參數(shù)。

非聚集索引(Nonclustered Indexs)

一個(gè)非聚集索引與一本書(shū)的索引相似。數(shù)據(jù)存儲(chǔ)在一個(gè)地方,SQL Server 索引索引存儲(chǔ)在另外一個(gè)地方,可以通過(guò)索引中的指針來(lái)訪問(wèn)存儲(chǔ)的數(shù)據(jù)。索引中的條目是按照索引碼的值按序存儲(chǔ),但是表中的信息可以按照不同的順序存儲(chǔ)(如可以按照聚集索引存儲(chǔ))。如果表中沒(méi)有創(chuàng)建聚集索引,那么表中的記錄就不能保證按照某種特定的順序。

SQL Server 索引底層實(shí)現(xiàn)

與你用一本書(shū)的索引方式一樣,SQL Server2000也是先通過(guò)非聚集索引檢索到查找數(shù)據(jù)在表的位置,然后通過(guò)該位置來(lái)檢索數(shù)據(jù)。這使得非聚集索引非常適合精確匹配查詢(xún)(This makes nonclustered indexes the optimal choice for exact match queries),因?yàn)樗饕龡l目中包含了你需要查找數(shù)據(jù)的位置信息。

如果當(dāng)前的表是以聚集索引方式存儲(chǔ),那么非聚集SQL Server 索引的位置信息就是聚集索引的索引碼(index key);否則,位置信息就是row ID(RID),每個(gè)RID由file number、page number和 slot number of row(每行記錄的槽號(hào))。

比如,要在一個(gè)表中檢索某個(gè)employee ID(emp_id),該表已經(jīng)有在emp_id列上創(chuàng)建了非聚集索引,SQL Server查找索引樹(shù),找到一個(gè)索引條目包含你需要查找的emp_id,然后利用其中RID來(lái)訪問(wèn)到對(duì)應(yīng)數(shù)據(jù)頁(yè)中的值。

【編輯推薦】

  1. SQL Server 實(shí)用操作的代碼演示
  2. SQL Server數(shù)據(jù)庫(kù)與identity列
  3. SQL Server 2005數(shù)據(jù)庫(kù)安裝實(shí)例演示
  4. SQL Server數(shù)據(jù)庫(kù)在安裝時(shí)的注意事項(xiàng)
  5. SQL Server Compact中的DLL文件與工具
責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-19 14:37:20

SQL Server

2010-07-07 10:47:58

SQL Server索

2010-07-19 16:26:05

SQL Server非

2010-07-23 10:09:41

SQL Server

2010-07-06 17:09:45

SQL Server索

2010-06-17 10:43:21

SQL Server

2010-07-26 11:27:43

SQL Server打

2010-07-06 11:36:16

SQL Server集

2009-06-08 09:22:07

數(shù)據(jù)訪問(wèn)優(yōu)化SQL Server

2010-07-07 13:58:25

SQL Server死

2010-09-16 13:42:55

SQL SERVER索

2010-07-07 11:20:02

SQL Server聚

2011-04-18 11:00:12

SQL Server全文索引

2010-11-10 14:06:44

SQL Server全

2010-07-08 16:44:21

SQL Server索

2010-07-08 16:52:31

SQL Server索

2010-07-07 13:18:13

SQL Server視

2010-07-07 09:27:15

SQL Server索

2010-07-19 15:50:53

SQL Server索

2011-08-30 13:54:29

SQL Server全文索引
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产超碰人人爽人人做人人爱 | 精品亚洲一区二区 | 日韩精品成人av | 日韩欧美三级电影在线观看 | 天天操网 | 国产精品区二区三区日本 | av超碰| 欧美精品日韩精品国产精品 | 午夜手机在线视频 | 日本成人福利视频 | 亚洲福利网 | 91久久国产综合久久91精品网站 | 欧美精品久久久久久久久久 | 中文字幕第7页 | 91久久国产精品 | 久草免费在线视频 | 日韩欧美在线视频 | 欧美区精品 | 欧美午夜精品 | 午夜资源 | 婷婷福利视频导航 | 亚洲日本欧美日韩高观看 | 午夜影院视频在线观看 | 91电影在线 | 天天亚洲 | 伊人网伊人 | 久久大陆 | 在线不卡一区 | 久久精品一区 | 一区二区在线 | 久久综合99 | 欧美综合在线视频 | 亚洲精品乱码久久久久v最新版 | 国产精产国品一二三产区视频 | 国产一区二区三区四 | 国产精品欧美一区二区三区 | 日本一区二区高清不卡 | 在线观看亚洲精品 | 亚洲在线免费观看 | 国内自拍视频在线观看 | 国产福利视频 |