我一直以为SQL编译器会破坏,但显然nesing可以几乎是无限的。是这样的代码被丢弃立即或是有一线希望,像这样的东西可以功能?

这种查询并不真正属于我的所以我不能后它...但是让我们假装这是 这一个:

[SELECT /*+ NOPARALLEL bypass_recursive_check */ 
SP_ALIAS_190, 
((CASE SP_ALIAS_191
WHEN 1
THEN 'PROVIDER::ALL_PROV::'
WHEN 0]
有帮助吗?

解决方案

如果查询是由工具(或代码)生成的,那么维护它可能相对简单(在某种意义上,查询生成代码实际上可能写得很好并且可以维护)

其他提示

显然,您从未见过来自Sharepoint DAL的SQL。

我遇到了一个问题类似于这个最近和我来到了一个决定考虑到两件事情:

  • 多长时间这是要保持与改写?
  • 如何关键的是这个吗?可能有很多的逻辑,可能难以解和价值这一事实,即"它的工作"超出的价值从一个立即改写。

当然,还有的是政治决定的管理必须让有关的风险说明为什么东西,这是最近创建的,将必须重写。

在结束(对我),找到+替换是我的朋友。

使用 WITH 声明。 添加很多很多评论。

如果你把它分成可以管理的部分,你就会有更好的机会。

如果它包含了大量的嵌套,我会说不。

就像任何代码一样,无论使用何种语言,你都应该只考虑重写它,因为你可以使它更有效或更容易理解。

根据我的经验,我已经能够将写得不好的SQL减少到其大小的4到5倍,并且其性能提高了很多倍,因为原始人真的不知道。

scroll top