Sql-Server

數據庫文件儲存結構中的統一範圍和混合範圍有什麼區別?

  • July 24, 2021

我只是去了一些資源說:

統一範圍由單個對象擁有,混合範圍最多可以由 8 個對象共享。

但是我無法理解他們的洞察力,比如這種結構有什麼好處?基本上,我是這個領域的新手,所以如果你能提供一些直覺的例子和應用程序,將不勝感激。

儲存在頁面上的內容、統一的和共享的範圍之間沒有區別。就像分配的前 8 頁(表、索引……)來自共享擴展區一樣簡單。

早在 90 年代中期,當“新”架構完成時,MS 決定他們不想為每個分配浪費高達 64 kB(8 頁)的空間。那時我們沒有分區,如果我們也忽略 LOB 數據,我們可以將分配等同於“每個索引和實際數據”。即,想像一個有 4 個索引的表(假設它是一個堆,但如果這對您沒有任何意義,請忽略細微差別)。對於統一的擴展區,這 5 個分配中的每一個(一個用於數據,一個用於索引)每個都將使用至少 64 kB。即,至少 5 * 64 kB = 320 kB,即使您只有一行。

因此,他們決定前 8 頁來自混合範圍。現在,這 5 個分配中的每一個只使用 1 個頁面(而不是 1 個擴展區),即,對於本範例,使用 40 kB 而不是 320 kB。

歲月飛逝,從 SQL Server 2016 開始,MS 決定保存這些微不足道的 kB 並不能為我們帶來太多好處,所以現在 SQL Server 從一開始就分配統一的範圍。即,不再有“前 8 頁來自共享範圍”。如果需要,您可以使用數據庫選項恢復到舊行為。

但是,共享範圍仍然存在。例如,IAM頁面仍然來自共享範圍。

引用自:https://dba.stackexchange.com/questions/268355