十年DBA老兵:警惕,重Java轻SQL乃性能大忌(4)
为了实现这种结构转换,当时的架构设计如下:
水到渠成,一战而定 从上述描述中,我们可以提炼出如下信息:
那么,如果用 SQL 来实现上述逻辑功能,存在两个难点,其一是如何判断里程碑(task_name)前后置关系,其二是计算前后置里程碑的时间差。 进一步分析后发现,里程碑(task_name)前后置关系可以通过 SQL 来获取,而在时间间隔的计算上,可以通过 lead 窗口分析函数获取后置时间,然后相减即可。 改造后的 SQL 如下: 将 SQL 在 DB 中运行,不到 3 秒就执行完成。 (编辑:ASP站长网) |