正在搜索 SQL 服务器内置(隐藏)函数以导出 table 字段的唯一性/可变性?
Searching for a SQL Server built in (hidden) function to derive a table's field's uniqueness/ variability?
我记得很多年前(是的,去年 2006 年)我偶然发现了一个隐藏的或未记录的内置函数,该函数计算列的可变性/方差。在尝试确定列是否适合放置索引时使用此函数。我记得在 SQL Server Central 读过它,它输出类似
的内容
Column 1: 0.0291
例如,如果一列是布尔值,则它只会输出 2 个可能的值:0.5
或类似的东西
现在,我搜索了那个函数,我尝试了很多 google 搜索了几个星期,但我再也找不到了。
有人知道那个函数是什么吗?
我认为你指的是 'Cardinality',而不是可变性。在任何情况下,它都是对列中不同值数量的估计。我不知道 SQL 服务器中有任何隐藏或其他功能会为此生成任何类型的值,但查询计划生成器在生成查询计划时肯定会使用它。您可以在它在 SSMS 中生成的估计查询计划中看到结果。 SQL 2014 的基数估计器得到了极大改进,您可以阅读更多相关信息 here。
我记得很多年前(是的,去年 2006 年)我偶然发现了一个隐藏的或未记录的内置函数,该函数计算列的可变性/方差。在尝试确定列是否适合放置索引时使用此函数。我记得在 SQL Server Central 读过它,它输出类似
的内容Column 1: 0.0291
例如,如果一列是布尔值,则它只会输出 2 个可能的值:0.5
或类似的东西
现在,我搜索了那个函数,我尝试了很多 google 搜索了几个星期,但我再也找不到了。
有人知道那个函数是什么吗?
我认为你指的是 'Cardinality',而不是可变性。在任何情况下,它都是对列中不同值数量的估计。我不知道 SQL 服务器中有任何隐藏或其他功能会为此生成任何类型的值,但查询计划生成器在生成查询计划时肯定会使用它。您可以在它在 SSMS 中生成的估计查询计划中看到结果。 SQL 2014 的基数估计器得到了极大改进,您可以阅读更多相关信息 here。