Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 为什么没有重新计算统计数据?_Performance_Sql Server Ce_Sql Tuning - Fatal编程技术网

Performance 为什么没有重新计算统计数据?

Performance 为什么没有重新计算统计数据?,performance,sql-server-ce,sql-tuning,Performance,Sql Server Ce,Sql Tuning,我有SQL Server Compact Edition 4.0数据库,每天可获得约1K条记录。但随着时间的推移,一些查询失去了效率。我重新检查了索引和统计数据,发现统计数据很长时间没有更新sp_show_statistics向我显示以下内容: TABLE INDEX UPDATED ROWS ROWS__SAMPLED STEPS DENSITY AV_KEY_LEN RECOMPUTE STA

我有SQL Server Compact Edition 4.0数据库,每天可获得约1K条记录。但随着时间的推移,一些查询失去了效率。我重新检查了索引和统计数据,发现统计数据很长时间没有更新<代码>sp_show_statistics向我显示以下内容:

TABLE       INDEX               UPDATED             ROWS    ROWS__SAMPLED   STEPS   DENSITY         AV_KEY_LEN  RECOMPUTE   STALE
Events      PK_Events           18.08.2015 7:45:08  1876754 1876754         5       5,328349E-07    4           True        False
Files       PK_Files            09.08.2015 18:15:00 411589  411589          3       2,429608E-06    4           True        False
Revisions   PK_Revisions        07.07.2015 8:10:05  376296  376296          5       2,657482E-06    4           True        False
Revisions   UQ_Revisions_Guid   07.07.2015 8:10:50  376296  376296          200     2,657482E-06    16          True        False
...
从MSDN(sp_显示统计数据):

重新计算。 布尔值。True表示如果确定此统计信息已过时,则下次使用时将自动更新此统计信息

所有索引都是在没有统计信息\u NORECOMPUTE选项的情况下创建的。数据库每天都被大量使用。还有一个细节:修订表现在有442067条记录,但这个表的统计数据是建立在376296行上的,正如我在sp_show_statistics输出中看到的那样

如何使统计数据保持最新?谢谢

您可以使用“更新统计信息”


谢谢,但我想知道如何自动更新统计信息。如果统计信息过时,查询处理器会自动更新这些统计信息。我认为(还没有找到任何证据,但可以测试)SqlCeEngine.Compact将强制收回统计数据。有关“过时”含义的更多信息,请参见: