重构SQL

Mon*_*ong 14 sql refactoring

是否有类似的重构这份名单SQL任何正式的技术在这里也就是代码?

我目前正在为一个特定的报告进行大规模的查询,我确信这里有足够的重构空间,我只是一点一点地磕磕绊绊.

Evi*_*ach 5

我从未见过像你提供的样本那样详尽的清单.

重构sql的最有效的方法是使用with语句.它允许您将sql分解为可管理的部分,这些部分通常可以独立测试.此外,它还可以通过使用系统临时表来启用查询结果的重用.值得仔细研究.

是一个更有趣的例子.

  • 好的,如果他们在SQL 2005+上.之前你不能使用With语句,所以临时表是你的朋友.(注意,对于测试,最好将其作为临时启动并在您对它们感到满意时转换为withs,这样您就可以将内置表保留在内存中并等待,而不是每次都需要单独重建它们想检查一下.) (2认同)

eft*_*trm 1

我还没有发现过。我主要完成了 SQL Server 工作,标准技术是:

  • 对可能更改的硬编码值进行参数化(以便可以缓存查询)
  • 检查执行计划,检查大怪物在哪里并尝试改变它们
  • 索引调整向导(但请注意,您为此所做的任何更改不会在其他地方造成混乱)

如果您仍然陷入困境,许多报告并不依赖于 100% 的实时数据 - 尝试按计划(例如隔夜)预先计算部分数据(或全部数据)。

  • 听起来你在谈论优化(提高性能)而不是重构(改进设计)。 (6认同)