首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

可以通过何种技术来分析涉及上千个表级别的的 SQL Query / Procedure 的逻辑关系?

  •  1
     
  •   Kamitora · 41 天前 · 700 次点击
    这是一个创建于 41 天前的主题,其中的信息可能已经有所发展或是发生改变。

    难点

    • 解构太过复杂,耦合度太高——表连接表,查询结果套查询结果,存储过程调用存储过程

    预期的结果

    • 能够获得各个对象间(表,查询结果,存储过程,etc.)的关系
    • 得到的信息能够用来生成类似于 UML 图 的 View

    排除的方向

    • SQL EXPLAIN 语句
    • 一些用于 SQL 调优的应用
    • Python 等脚本,开发已表示放弃治疗

    目前上级觉得可能的方向:NLP,然而本人对这方面没有相关知识,不清楚是否能够实现。

    请各位 V 站大佬赐教

    8 回复  |  直到 2019-11-05 11:30:37 +08:00
        1
    sun1991   41 天前 via Android   ♥ 1
    天哪~能写出包含上千个表的 SQL, 神人呐
        2
    reus   41 天前   ♥ 1
    不知道你们用什么数据库,PostgreSQL 支持 explain 输出 json,十分详尽,结合 information schema 之类元数据,完全可以做到。

    explain 不够,那就直接写个插件切入 planner,什么都有了。
        3
    SmiteChow   41 天前   ♥ 1
    sql 本就是结构化的,使用 antlr4 找一个 sql 语法解析器,根据语法树解析识别即可。
        4
    saulshao   41 天前   ♥ 1
    理论上像 DBEAVER 之类的数据库管理工具可以允许你生成 E-R 图。前提是有建好的外键。
    但是存储过程据我所知没什么好办法。
        5
    ddzzhen   41 天前 via Android   ♥ 1
    参考魔兽世界的数据库,就是这样设计的,简直是一门艺术
        6
    Kamitora   41 天前 via iPhone
    补充下,数据库用的是 Oracle,感谢各位的回复!
        7
    liuzhedash   40 天前
    @ddzzhen #5
    有详细资料嘛?很有兴趣了解一下
        8
    ddzzhen   40 天前 via Android
    @liuzhedash
    https://github.com/cmangos/issues/wiki/Installation-Instructions
    可以部署 3.3.5 感受一下数据库节结构,或者直接看数据库 wiki 头脑风暴
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2428 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 12:47 · PVG 20:47 · LAX 04:47 · JFK 07:47
    ♥ Do have faith in what you're doing.