gpt4 book ai didi

sql-server - 查找 SQL Server 中表的 B 树高度

转载 作者:行者123 更新时间:2023-12-02 17:55:16 24 4
gpt4 key购买 nike

由于数据库数据是以B-tree的8k页来组织的,同样对于PK信息信息,数据库中的每个表都应该可以计算B-Tree的高度。从而揭示到达某些数据需要多少次跳跃。

由于行大小和 PK 大小都非常重要,因此很难计算,因为例如 varchar(250) 不需要占用 250 字节。

1) 有没有办法从 SQL Server 获取信息?2)如果没有,是否可以使用一些分析数据库表的代码来进行粗略估计?

最佳答案

是的!当然!

查看 DMV = dynamic management views在 SQL Server 中 - 它们包含有关索引的信息宝库。 dm_db_index_physical_stats对于查看索引属性特别有用...

如果您在 AdventureWorks 中对包含超过 200'000 行的最大表 - Sales.SalesOrderDetails 运行此查询 - 您将获得一些数据:

SELECT 
index_depth,
index_level,
record_count,
avg_page_space_used_in_percent,
min_record_size_in_bytes,
max_record_size_in_bytes,
avg_record_size_in_bytes
FROM
sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID('Sales.SalesOrderDetail'), 1, NULL, 'DETAILED')

您将获得所有索引级别的输出 - 因此您一眼就能看出索引中有多少级别(我有三行 -> 索引中有三个级别)。索引级别 0 始终是叶级别 - 在聚集索引 (index_id = 1) 中,您拥有实际的数据页。

enter image description here

您可以查看平均、最小和最大记录大小(以字节为单位)以及大量附加信息 - 阅读 DMV,这是诊断和了解 SQL Server 内部工作原理的好方法!

关于sql-server - 查找 SQL Server 中表的 B 树高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com