【问题标题】:SSMS 2008 R2 - Clear clipboard after copying and pasting result setSSMS 2008 R2 - 复制和粘贴结果集后清除剪贴板
【发布时间】:2014-02-10 18:28:12
【问题描述】:

在 SQL Server Management Studio for SQL Server 2008 R2 中是否有一种方法可以清除您复制的结果集项目的剪贴板?我一直在对大型结果集进行大量复制和粘贴,每次复制它们都会增加 SSMS 占用的内存,并在一段时间后崩溃。

我意识到有更好的方法来做到这一点(即不要复制和粘贴 - 将数据直接传送到它应该去的地方)但我找不到清除 SSMS 剪贴板的解决方案,现在它很麻烦我。

【问题讨论】:

    标签: sql-server sql-server-2008-r2 ssms


    【解决方案1】:

    嗯,它很可能不是剪贴板,而只是 .NET 垃圾收集器的一般行为。而且没有什么可做的。但是,嘿,今天是 2019 年,您可以使用更新版本的 SSMS。

    【讨论】:

      【解决方案2】:

      实际上,每次复制新内容时都会清除它。因此,当您复制 1 个字符时,您已经清除了剪贴板。崩溃的原因可能是 SSMS 的内存管理 - 这并不意味着当您复制 1 个字符时立即释放内存。

      但也许有另一种解决方案可以解决您的问题。您将数据复制到哪里?另一个应用程序?电子表格?文本文件 ?如果您说出您的情况,可能会有更好的解决方案。

      【讨论】:

      • 当我复制一条新数据时,我注意到 SSMS 的内存分配有所下降 - 但它仍然不断增加并且不一致。例如,我没有在我当前的 SSMS 实例中进行任何复制/粘贴,我的大小约为 100MB。将 270 万行的数据集拉入结果窗口会增加约 50MB 的内存,而复制/粘贴(到 excel 中)约 9K 的行会增加 60MB 的使用量。然后此时尝试从原始结果窗口中复制单个单元格或一行并没有改变内存使用情况。
      • 不幸的是,这就是它在 SSMS 中的方式。 SSMS 不会将所有数据加载到网格中,并且只显示一种“预览”。其余的驻留在磁盘缓存中。如果您将大量数据复制到剪贴板,SSMS 必须保留全部所需数量,但垃圾收集器不会释放它,然后由于某种原因返回(有时会在几分钟后发生)。
      • 我为 SSMS 开发了 SSMSBoost 插件,但在实现网格脚本时遇到了这个问题。结果,我们不得不切换到自己的磁盘缓存来解决问题(查询小部分数据)。 SSMSBoost 可能会解决您的问题,因为我们已经使用原生 XML 电子表格格式实现了导出到 excel。真正的大数据量应该是可能的。
      • 谢谢,我会研究一下 SSMSBoost。我也总是可以在 Excel 中使用本机数据连接,但我喜欢使用 SSMS 来设置所有内容,等等。
      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多