在SQL Server里,有2種表是以存儲為基礎的。有聚集索引的表叫聚集表,沒有聚集索引的表叫堆表。在上一篇文章,我們討論了堆表的特性和存儲結構。在這篇文章里,我們來看下聚集表。 有聚集索引的表叫聚 ...
在SQL Server里,有2種表是以存儲為基礎的。有聚集索引的表叫聚集表,沒有聚集索引的表叫堆表。在上一篇文章,我們討論了堆表的特性和存儲結構。在這篇文章里,我們來看下聚集表。 有聚集索引的表叫聚 ...
一年前,我寫了在索引的導航結構里,SQL Server如何存儲VARCHAR列。我們都知道,在SQL Server里索引(聚集索引,非聚集索引)的鍵列有最大900byte的大小限制。 假設現在你想捉 ...
這篇文章會解釋下不同類型的碎片。理解索引碎片的概念對有效檢測和移除碎片非常重要。 什么是碎片 碎片可以定義為:任何情況下,在訪問一個表時,造成比適量更多的磁盤IO操作或更長的磁盤IO操作。SELE ...
當我們進行SQL Server問題處理的時候,有時候會發現一個很有意思的現象:SQL Server完全忽略現有定義好的非聚集索引,直接使用表掃描來獲取數據。我們來看看下面的表和索引定義: ...
一個表只能有一個聚集索引,數據行以此聚集索引的順序進行存儲,一個表卻能有多個非聚集索引。我們已經討論了聚集索引的結構,這篇我們會看下非聚集索引結構。 非聚集索引的邏輯呈現 簡單來說,非聚集索引是表 ...
在上一個文章里,我們理解了有聚集索引表和沒有聚集索引表之間的區別。有聚集索引的表叫聚集表。沒有聚集索引的表叫堆表(heap table)。 堆表(heap table) 沒有聚集索引的表 ...
在今天的文章里我想談下SQL Server里非常重要的話題,當人們第一次使用SQL Server時是最會混淆的。即主鍵約束(Primary Key constraint)和聚集索引(Clustered ...
在上篇文章里,我討論了唯一和非唯一聚集索引的區別。我們已經知道,SQL Server內部使用4 bytes的uniquifier來保證非唯一聚集索引行唯一。今天我們來看下唯一聚集索引上,唯一和非唯一非 ...
在這篇文章里,我想詳細介紹下SQL Server里唯一與非唯一非聚集索引的區別。看這個文章前,希望你已經理解了聚集和非聚集索引的概念,還有在SQL Server里是如何使用的。 很多人對唯一和非唯一 ...
我是個懶人,我只想干盡可能少的活。當我干活的時候我不想太多。是,你沒看錯,這看起來很糟糕,作為一個DBA這很不合格。但在今天的文章里,我想給你展示下,當你想對特定查詢創建索引設計時,你如何把你的工作和 ...