51得票2回答
重新索引会更新统计数据吗?

我过去一周一直在学习MS10775A课程,有一个问题是培训师无法可靠地回答的: 重新索引是否会更新统计信息? 我们在网上找到了一些讨论,有人认为会更新,也有人认为不会更新。

48得票2回答
何时更新统计数据?

我继承了一个维护计划,具体包括以下内容: - 清理旧数据 - 检查数据库完整性 - 执行数据库和事务日志备份 - 重组索引 - 更新统计信息 - 删除旧备份和维护计划文件 在这个23分钟的维护计划中,更新统计信息需要惊人的13分钟。在这13分钟期间,访问数据库被阻塞(或者至少,从该数据库到...

44得票3回答
在什么情况下,创建统计信息比创建索引更好呢?

我找到了很多关于“统计信息(STATISTICS)”的资料:它们是如何维护的,可以通过手动或自动方式从查询或索引中创建,等等。但是,我一直没有找到任何关于何时创建它们的指导或“最佳实践”信息:在哪种情况下手动创建统计对象比索引更有利。我看到手动创建的筛选统计信息有助于分区表上的查询(因为为索引...

38得票3回答
执行计划中缺失统计信息的警告

我遇到了一个我无法理解的情况。我的SQL Server执行计划告诉我,我的表上缺少统计信息,但这些统计信息已经被创建了。 但是如果我们看一下表格,我们会发现有一个统计数据是自动生成的。 有人能帮忙理解这是怎么回事吗? 当前数据库已开启自动更新和自动创建统计信息。 我正在使用SQ...

29得票1回答
sys.stats_columns是否不正确?

假设我有一个名为Foo的表,它有ID1, ID2两列,并且定义了一个由ID2, ID1组成的复合主键。(我目前正在使用一个System Center产品,其中有几个表以与表定义中出现的顺序相反的方式列出了主键列。) CREATE TABLE dbo.Foo( ID1 int NOT NU...

28得票1回答
在SQL Server中,统计数据在物理上存储在表和索引的元数据中。

查询优化器使用的统计信息在SQL Server数据库文件和缓冲池中的物理存储位置在哪里? 更具体地说,是否有办法通过DMV和/或DBCC来确定统计信息所使用的页面? 我拥有SQL Server 2008 Internals和SQL Server Internals and Troubles...

25得票2回答
LIKE运算符(本地变量)的基数估计

我曾经以为,在所有优化未知情况下使用LIKE运算符时,无论是传统的还是新的CE都会使用9%的估计值(假设相关统计数据可用且查询优化器不必依赖选择性猜测)。 当对信用数据库执行以下查询时,我在不同的CE下得到了不同的估计值。在新的CE下,我得到了900行的估计值,这是我预期的结果;而在传统的C...

25得票3回答
统计更新中的样本大小异常行为

我一直在玩弄SQL Server(2012)上的统计更新,研究抽样阈值,并注意到了一些奇怪的行为。基本上,在某些情况下,抽样的行数似乎会有所变化 - 即使是相同的数据集。 我运行了这个查询: --Drop table if exists IF (OBJECT_ID('dbo.Test'))...

24得票2回答
追踪存储过程的使用情况

除了使用SQL Server Profiler之外,还有其他方法可以追踪哪些存储过程正在被使用,或者至少最后一次执行的时间吗?

22得票2回答
如何防止在列上创建统计数据?

我有一张表,其中有一列我不想创建或更新统计信息。如果我强制查询优化器使用主键上的统计密度而不是该列上的统计直方图,我可以获得更好的连接基数估计。数据库级别打开了自动更新和自动创建统计信息,并且我不能更改。 如果您想提出阻止统计信息创建的替代方案,请记住该表用于视图,被成千上万个不同的查询引用...