![相同的桌子,不同的尺寸?](https://linux22.com/image/611518/%E7%9B%B8%E5%90%8C%E7%9A%84%E6%A1%8C%E5%AD%90%EF%BC%8C%E4%B8%8D%E5%90%8C%E7%9A%84%E5%B0%BA%E5%AF%B8%EF%BC%9F.png)
我在几个 SQL 2008 R2 服务器(发布者是 Enterprise,订阅者是 Express)之间进行了具有可更新订阅的事务复制。
我需要添加另一个订阅者,然后发现我的数据库已经超出了 Express 的 10GB 限制。我当前的订阅者都在 10GB 限制以下,但发布数据库却有 13GB。
因此,我从最大的表中删除了一些未使用的列和数据,运行 dbcc cleantable,对它们运行更新统计信息,表的大小稍微缩小了,我想我可以开始了!
但是,发布数据库仍然有 11.5GB,而订阅数据库则全部下降到 8GB。
我比较了发布者和订阅者之间的表大小,我从中删除数据的几个最大的表在发布数据库中比在订阅数据库中要大——大了几千兆字节。
我比较了表结构并使用了 RedGate 的数据比较 - 发布者和订阅者之间的表是相同的,所以我很困惑。我不知道是什么导致了差异,更不用说如何解决它,以便我可以添加另一个订阅者(无需为订阅者购买 SQL 标准许可证)。我感觉这与发布者有关,并且它的行数在去年显着增长。
附注:我确实也有几个 SQL Standard 2008 许可证,但它们是 2008,而不是 2008 R2,因此与使用备份初始化订阅者不兼容。这些网站的连接速度很慢,所以我总是从备份初始化复制。