为什么我们在 SQL Server 中有未记录和不受支持的函数?

Ron*_*ldo 8 sql-server documentation functions

在阅读了一篇日期为2012年的关于未记录的函数fn_dblog 和 fn_dump_dblog的文章后,我想知道如果它们已经存在很长时间并且非常有用,为什么它们仍然未记录且不受支持。与这篇2004 年的sp_msforeachtable 和 sp_msforeachdb文章相同。

我可以从其中一个回答论坛上的问题中受益(在日志备份期间是将数据备份到操作开始还是结束?),但我想知道为什么它们随 SQL Server 一起提供直到现在,以未记录和不受支持的方式。

我知道有人说他们不可靠,但如果这是唯一的原因,他们本可以在 16 年内得到纠正。所以一定有另一种解释。

mus*_*cio 9

作为为大型软件供应商工作的人,我可以说未记录和不受支持的1功能通常属于以下三类之一:

  1. 供供应商支持工程师专用的工具。它们很少需要,通常需要对内部结构有深入了解,难以设置和使用,而且通常很危险,需要由供应商明确提供的一次性密码或密钥来保护。它们永远不会成为产品功能。在对难以调试的问题进行故障排除时,他们可以提供支持。

  2. 深奥错误的修复和解决方法。它们作为紧急情况的修补程序实施。此类错误很少见,其根本原因最终会得到解决,因此这些“功能”在那时就失去了用处,并且为它们提供持续支持不符合供应商的利益。

  3. 测试版和实验性功能。它们通常首先提供给一小群 Beta 测试人员和要求它们的主要客户,并且它们的文档很少。其中一些最终将得到完全支持,当利益相关者失去兴趣或与其他被认为更重要或更有用的功能发生冲突时,其他一些将留在那里腐烂。

正如对您的问题的评论中所述,每个完全支持和记录的功能都会给供应商带来成本,并且该成本必须通过预期收益来证明。如果维护某个功能对供应商几乎没有好处,那么就没有理由支持它。


1 - 它们并非真的完全不受支持;它们在“尽力而为”的基础上得到支持,这意味着“我们可能在某处有一个简要描述该功能的技术说明,但我们不会花太多时间帮助您使其工作,如果它不起作用或它会擦除拿出你的数据,好吧,艰难”。