J.D*_*.D. 2 index tree sql-server btree sql-server-2016
我个人对数据结构很感兴趣,并且知道行存储索引存储在它们后面的 B 树,我总是很好奇尝试可视化那些 B 树对于给定表/索引的样子。
有没有办法通过执行计划、统计信息、运算符属性、索引/表属性等关联或公开给定行存储索引的 B 树中的节点数?
此外,我可以做同样的事情来确定特定查询遍历的节点数吗?
如果有一种方法也可以确定 B 树中的叶节点数,则加分。
小智 5
可以在 DMF dm_db_index_physical_stats() 中找到一些此类信息,例如索引深度。可以在其中找到的一些外部有趣信息是使用的数据页数和碎片级别。我个人使用以下查询来获取当前数据库的索引状态
SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,
ind.name AS IndexName,
ixs.index_type_desc,
ixs.index_depth,
ixs.page_count,
ixs.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) ixs
INNER JOIN sys.indexes ind
ON ind.object_id = ixs.object_id AND ind.index_id = ixs.index_id;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35 次 |
最近记录: |