Sql-Server

SQL Server 是否共享數據頁?

  • September 9, 2021

我試圖更多地了解如何將數據分配給 8KB 數據頁:

  1. 同一頁面可以與其他數據庫中的行共享嗎?
  2. 可以與其他表中的行共享同一頁面嗎?

1 - 否

2 - 沒有

有關頁面和範圍的 Microsoft 文件非常全面 https://docs.microsoft.com/en-us/sql/relational-databases/pages-and-extents-architecture-guide?view=sql-server-ver15

1:沒有

2:沒有

一個頁面由一個分配單元擁有:

  1. 表中有實際數據,可以是堆或聚集索引。
  2. 您有 x 個非聚集索引。
  3. 上面的 1 和 2 都可以包含帶有行外數據的 LOB 列(例如,varbinary(max))。
  4. 上面的 1 和 2 都可以是行溢出數據,例如,完全填充的 2 個 varchar(8000) 列將不適合頁面,這意味著一個或多個列儲存在行外。與上面的 3 類似,但用於有限的可變長度數據類型而不是最大類型。
  5. 以上所有(您擁有的)都有自己的分配單元。他們不共享頁面。
  6. 此外,上面的 1 和 2 可以分區,在這種情況下,您可以將上面的 1-4 與您擁有的許多分區相乘 ​​- 為您提供分配單位。同樣,數據不會在分配單元之間進行頁面共享。

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