回覆列表
  • 1 # 中華歷史長河

    一、索引定義分類讓我們先來回答幾個問題:  什麼是索引?索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定資訊。舉個例子,索引就像我們查字典時用的按拼音或筆畫或偏旁部首有哪些索引?從物理結構上可分為兩種:聚集索引和非聚集索引 (此外還有空間索引、篩選索引、XML索引)索引說明 (http:// msdn.microsoft.com/zh-cn/library/ms190197(v=sql.105).aspx)每張表上最大的聚集索引數為1;每張表上最大的非聚集索引數為999;每個索引最多能包含的鍵列數為16;索引鍵記錄大小最多為900位元組二、索引資料結構  在SQL Server資料庫中,索引的儲存是以B+樹(注意和二叉樹的區別)結構來儲存的,又稱索引樹,其節點型別為如下兩種:索引節點;葉子節點  索引節點按照層級關係,有時又可以分為根節點和中間節點,其本質是一樣的,都只包含下一層節點的入口值和入口指標;  葉子節點就不同了,它包含資料,這個資料可能是表中真實的資料行,也有可能是索引列值和行書籤,前者對應於聚集索引,後者對應於非聚集索引。三、索引儲存結構  在正式討論索引的儲存結構之前,我們有必要先來了解一下SQL Server資料庫的儲存結構。  SQL Server資料庫儲存(結構)的最小單位是頁,大小為8K,共8 * 1024 = 8192Byte,不論是資料頁還是索引頁都是以此方式存放。實際上對於SQL Server資料庫而言,其頁(Page)型別有很多種,大概有如下十幾種Type 1 – Data page.Data records in heapClustered index leaf-levelLocation can be randomType 2 – Index pageNon-clustered indexNon-leave-level clustered indexLocation can be randomType 3 – Text Mixed PageSmall LOB value(s), multiple types and rows.Location can be randomType 4 – Text PageLOB value from a single column valueLocation can be randomType 7 – Sort PageTemporary page for sort operation.Usually tempdb, but can be in user database for online operations.Location can be randomType 8 – GAM PageGlobal Allocation Map, track allocation of extents.One bit for each extent, if the bit is 1, means the extent is free, otherwise means the extent is allocated (not necessary full).The first GAM page in each file is page 2Type 9 – SGAM PageShared Global Allocation Map, track allocation of shared extentsOne bit for each extent, if the bit is 1, means the extent is allocated but has free space, otherwise means the extent is fullThe first SGAM page in each file is page 3Type 10 – IAM PageIndex Allocation Map. Extent allocation in a GAM interval for an index or heap table.Location can be random.Type 11 – PFS PagePage Free Space. Byte map, keeps track of free space of pagesThe first PFS is page 1 in each file.Type 13 – Boot PageInformation about the pageOnly page 9 in file 1.Type 14 – Server Configuration Page (It may not be the official name)Part of information returned from sp_configure.It only exists in master database, file 1, page 10SQL Server 2008 OnlyType 15 – File Header PageInformation about the file.It’s always page 0 every data page.Type 16 – Differential Changed mapExtents in GAM interval have changed since last full or differential backupThe first Differential Changed Page is page 6 in each fileType 17 – Bulk Change MapExtents in GAM interval modified by bulk operations since last backupThe first Bulk Change Map page is page 7 in each file  表中所有資料頁的存放在磁碟上又有兩種組織方式:堆表;索引組織表  如果表中所有資料頁是以一種頁間無序、隨機儲存的方式,則稱這樣的表為堆表;  否則如果表中資料頁間按某種方式(如表中某個欄位)有序地儲存與磁碟上,則稱為索引組織表。四、聚集索引  下面我們將深入研究一下資料庫中的索引到底是如何儲存的以及如何被使用的。  為了測試驗證等,我們在資料庫PCT上新建一張測試表Employee,有兩個欄位,其中EmployeeId為主鍵

  • 中秋節和大豐收的關聯?
  • 金斗煥介紹(好象是韓國總統)?