我过去一周一直在学习MS10775A课程,有一个问题是培训师无法可靠地回答的: 重新索引是否会更新统计信息? 我们在网上找到了一些讨论,有人认为会更新,也有人认为不会更新。
我继承了一个维护计划,具体包括以下内容: - 清理旧数据 - 检查数据库完整性 - 执行数据库和事务日志备份 - 重组索引 - 更新统计信息 - 删除旧备份和维护计划文件 在这个23分钟的维护计划中,更新统计信息需要惊人的13分钟。在这13分钟期间,访问数据库被阻塞(或者至少,从该数据库到...
我找到了很多关于“统计信息(STATISTICS)”的资料:它们是如何维护的,可以通过手动或自动方式从查询或索引中创建,等等。但是,我一直没有找到任何关于何时创建它们的指导或“最佳实践”信息:在哪种情况下手动创建统计对象比索引更有利。我看到手动创建的筛选统计信息有助于分区表上的查询(因为为索引...
我遇到了一个我无法理解的情况。我的SQL Server执行计划告诉我,我的表上缺少统计信息,但这些统计信息已经被创建了。 但是如果我们看一下表格,我们会发现有一个统计数据是自动生成的。 有人能帮忙理解这是怎么回事吗? 当前数据库已开启自动更新和自动创建统计信息。 我正在使用SQ...
假设我有一个名为Foo的表,它有ID1, ID2两列,并且定义了一个由ID2, ID1组成的复合主键。(我目前正在使用一个System Center产品,其中有几个表以与表定义中出现的顺序相反的方式列出了主键列。) CREATE TABLE dbo.Foo( ID1 int NOT NU...
查询优化器使用的统计信息在SQL Server数据库文件和缓冲池中的物理存储位置在哪里? 更具体地说,是否有办法通过DMV和/或DBCC来确定统计信息所使用的页面? 我拥有SQL Server 2008 Internals和SQL Server Internals and Troubles...
我曾经以为,在所有优化未知情况下使用LIKE运算符时,无论是传统的还是新的CE都会使用9%的估计值(假设相关统计数据可用且查询优化器不必依赖选择性猜测)。 当对信用数据库执行以下查询时,我在不同的CE下得到了不同的估计值。在新的CE下,我得到了900行的估计值,这是我预期的结果;而在传统的C...
我一直在玩弄SQL Server(2012)上的统计更新,研究抽样阈值,并注意到了一些奇怪的行为。基本上,在某些情况下,抽样的行数似乎会有所变化 - 即使是相同的数据集。 我运行了这个查询: --Drop table if exists IF (OBJECT_ID('dbo.Test'))...
除了使用SQL Server Profiler之外,还有其他方法可以追踪哪些存储过程正在被使用,或者至少最后一次执行的时间吗?
我有一张表,其中有一列我不想创建或更新统计信息。如果我强制查询优化器使用主键上的统计密度而不是该列上的统计直方图,我可以获得更好的连接基数估计。数据库级别打开了自动更新和自动创建统计信息,并且我不能更改。 如果您想提出阻止统计信息创建的替代方案,请记住该表用于视图,被成千上万个不同的查询引用...