在SQL Server中调试远程聚合

本文关键字:程聚 调试 SQL Server | 更新日期: 2023-09-27 18:14:19

所以我遇到了一个大问题。我需要调试一个自定义聚合,并且我能够构建和部署它,但一旦开始,它就不允许出现以下情况:

  1. 任何情况下的管理员访问权限
  2. File.Write访问(不写入文本文件(
  3. EventLog访问
  4. Remote Debugging访问由于防火墙、用户权限等方面的复杂性
  5. 通过本地安装SQL Server获取数据。我将数据存储在一个远程位置,无法将其转储以进行测试

在这种情况下,我将如何调试自定义聚合?当尝试使用File.WriteEventLog.WriteEvent时,它会引发安全访问异常。

有没有一种方法可以在每次聚合函数调用时打印输出?我想知道在Merge()Terminate()等中正在泵送和倾倒什么。

我有什么东西不见了吗?谢谢

在SQL Server中调试远程聚合

考虑到这些困难的访问限制,我们能够想出一个解决方案。它并不完美,但它为我们提供了所需的输出。

我们的解决方案是创建一个StringBuilder实例。

StringBuilder sb = new StringBuidlder();

并在需要调试的地方添加内容:

sb.Append("|Debug information");

最后,我们将StringBuilder附加到采集结果中。与其返回"测试",我们会返回这样的东西:

"test|debug information|more debug information|more debug information." 

然后我们会复制这些信息,并将其用于调试。这并不完美,但我们能够通过拆分结果来分离结果,并完成任务。