gpt4 book ai didi

sql-server - TSQL STATS_STREAM(未记录的功能)的格式是什么?它包含所有统计数据吗?

转载 作者:行者123 更新时间:2023-12-03 03:05:48 25 4
gpt4 key购买 nike

我在一台服务器上有一个巨大的表,需要将该表复制到生产服务器。我可以做到这一点,但随后我需要生成统计数据,这在我不想要求处理大量工作的系统上需要很长时间。如果我移动整个数据库,我需要关闭系统才能删除现有数据库,这是一个禁忌。

Pinal Dave 有一个帖子,http://blog.sqlauthority.com/2011/01/05/sql-server-copy-statistics-from-one-server-to-another-server/在这篇文章中,他概述了如何使用 Microsoft 的“生成脚本”将统计信息从一个表复制到新表,该脚本允许通过未记录的 STATS_STREAM 功能进行复制。这是用于新表的。我不确定是否可以创建一个包含统计信息的表,然后写入所有数据,因为这应该会使系统想要更新统计信息 - 即使我关闭了自动生成统计信息也可能如此。

我正在使用以下代码:(表是 InvTbl,我正在更新的表上的统计信息是 GammaTheta。统计信息存在,数据也在那里。)

Update STATISTICS dbo.InvTbl [GammaTheta]  WITH STATS_STREAM = 0x0100002000...

首先,有谁知道Stats_Stream是否包含所有统计数据?那么,重要的是,它是如何以二进制形式存储的?

注意:该表存储了我们根据连接查找的两个变量的统计分布,并且具有一些关于输入分布的非常重要的特征。它是静态的,加载后我永远不需要重新计算值或统计数据。根据测试,不使用全扫描不是一种选择,因为连接速度很重要并且会受到影响。

注释 2:不,数字不以省略号结尾。我把数据关掉了。

最佳答案

如果我理解您的问题,统计流是统计数据的二进制表示形式,可用于完全重新创建统计信息,即使在具有不同数据的另一个表上(尽管具有相同的架构)也是如此。 Kevin Kline 在博客中提到了这一点 here 。我尝试了更好的自动化here .

关于sql-server - TSQL STATS_STREAM(未记录的功能)的格式是什么?它包含所有统计数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10305675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com