Questions tagged «statistics»

用于查询优化的统计信息是包含有关表或索引视图的一个或多个列中值分布的统计信息的对象。

1
奇异的密度导致抽样统计
通过采样与全扫描进行估算时,NC指数获得完全不同的统计分布;采样的样本具有奇异的密度向量。这导致执行计划不佳。 我有一个约2700万行的表,并且非聚集索引支持一个非null的FK列。该表聚集在其主键上。两列都是varchar。 FK列的全扫描统计信息更新给出了正常外观的密度矢量: All density Average Length Columns 6,181983E-08 45,99747 INSTANCEELEMENTID 3,615442E-08 95,26874 INSTANCEELEMENTID, ID 也就是说,我们希望与之INSTANCELEMENTID连接的每个不重复读取约1.7行。 直方图中的典型bin如下所示: RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS FOOBAR 133053 10 71366 1,679318 但是,如果我们进行了抽样更新(使用此表的默认样本数为23万行),那么情况就变得奇怪了: 4,773657E-06 45,99596 INSTANCEELEMENTID 3,702179E-08 95,30183 INSTANCEELEMENTID, ID 现在的密度INSTANCEELEMENTID要大两个数量级。(但是,两根色谱柱的密度均已估算为可以接受的值)。 现在,直方图中的典型bin如下所示: RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS FOOBAR 143870,4 766,2573 1247 115,3596 ZOTZOT 131560,7 1 …

1
自动更新统计信息不更新统计信息
我用SQL SERVER 2012我有我Auto Update Stats 对我的数据库。 从下面的链接中,我了解到,对于SQRT(1000 * Table rows)表行中的每个更改,自动更新统计信息都会触发。 https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/ 我创建了一个包含1000条记录的表 SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn, name INTO stst FROM sys.objects 建立统计资料 CREATE STATISTICS rn ON stst (rn) CREATE STATISTICS name ON stst (name) 检查创建的统计信息 DBCC show_statistics('stst', rn) -- Rows 500 DBCC show_statistics('stst', name) -- …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.