是否可以维护43页查询?

时间:2009-04-29 02:18:36

标签: sql maintainability

我一直认为SQL编译器会破坏,但显然nesing几乎可以无限。这个代码是立即被破坏还是有一些希望,这样的东西可以起作用吗?

此查询并不属于我,所以我无法发布...但是我们只是假装它是this one

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

8 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:7)

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

答案 2 :(得分:2)

我最近遇到了与此类似的问题,我通过考虑以下几个问题做出决定:

  • 维护与重写需要多长时间?
  • 这有多重要?可能有许多逻辑可能难以解开,“它工作”这一事实的价值超过了立即重写的价值。

当然,管理层必须做出政治决策,冒险解释为什么最近创建的东西必须重写。

最后(对我来说),找+替换是我的朋友。

答案 3 :(得分:1)

使用WITH语句重构它。 添加很多很多评论。

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

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:1)

如果您认为这很糟糕,您应该看到Industrial Logic的代码视频示例:Technical Debt。绝对不是自动生成的。

答案 6 :(得分:0)

是否可以在C#中维护43页功能?答案很明显;)。我无法想象这一点。如果我是你,我会把它分成更小的部分。

答案 7 :(得分:0)

两件事:

  • 只有机器需要读取此SQL吗?
  • 您是否坚持使用底层架构?

如果您有43页查询,并且对前两个问题的回答是肯定的,欢迎使用SharePoint开发