我在使用 Azure SQL Server PAAS 的实时环境中遇到了很多我不理解的页面拆分。正在发生的更新不应增加行的大小,因此永远不会导致页面拆分。此外,该行为仅发生在 Azure 中,不会发生在本地 SQL 实例上。
我使用的是使用 eDTU 定价和标准层 (200 eDTU) 的 Azure 弹性池。
我创建了以下示例来演示:
create table dbo.TestSplit
(
TestSplitId int not null identity,
MyInt int not null,
constraint PK_C_dbo_TestSplit_TestSplitId primary key clustered (TestSplitId)
);
Run Code Online (Sandbox Code Playgroud)
插入 100,000 行且 MyInt = 5:
insert into dbo.TestSplit
(MyInt)
select top(100000) 5
from sys.columns AS a
cross join sys.columns AS b
cross join sys.columns AS c
Run Code Online (Sandbox Code Playgroud)
运行以下 SQL 显示已创建 384 个页面,并且有 2 个碎片。
select
ix.name as index_name,
st.index_type_desc,
st.fragment_count,
st.page_count …
Run Code Online (Sandbox Code Playgroud) azure-sql-database page-splits accelerated-database-recovery