Sql-Server
SQL Server 是否共享數據頁?
我試圖更多地了解如何將數據分配給 8KB 數據頁:
- 同一頁面可以與其他數據庫中的行共享嗎?
- 可以與其他表中的行共享同一頁面嗎?
1 - 否
2 - 沒有
有關頁面和範圍的 Microsoft 文件非常全面 https://docs.microsoft.com/en-us/sql/relational-databases/pages-and-extents-architecture-guide?view=sql-server-ver15
1:沒有
2:沒有
一個頁面由一個分配單元擁有:
- 表中有實際數據,可以是堆或聚集索引。
- 您有 x 個非聚集索引。
- 上面的 1 和 2 都可以包含帶有行外數據的 LOB 列(例如,varbinary(max))。
- 上面的 1 和 2 都可以是行溢出數據,例如,完全填充的 2 個 varchar(8000) 列將不適合頁面,這意味著一個或多個列儲存在行外。與上面的 3 類似,但用於有限的可變長度數據類型而不是最大類型。
- 以上所有(您擁有的)都有自己的分配單元。他們不共享頁面。
- 此外,上面的 1 和 2 可以分區,在這種情況下,您可以將上面的 1-4 與您擁有的許多分區相乘 - 為您提供分配單位。同樣,數據不會在分配單元之間進行頁面共享。