我的公司有一群才华横溢、聪明的运营人员,他们工作非常努力。我想给他们一个 SQL 执行工具,帮助他们避免常见的、容易检测到的 SQL 错误,这些错误在他们赶时间时很容易犯。任何人都可以建议这样的工具吗?详情如下。
运营团队的一部分职责是编写非常复杂的即席 SQL 查询。毫不奇怪,操作员有时会因为太忙而在编写查询时出错。
幸运的是,他们的查询都是 SELECT 而不是更改数据的 SQL,而且它们无论如何都在数据库的副本上运行。尽管如此,我们还是希望防止它们运行的 SQL 出现错误。例如,有时错误会导致长时间运行的查询减慢他们正在使用的重复系统并给其他人带来不便,直到我们找到罪魁祸首并杀死它。更糟糕的是,有时这些错误会导致我们直到很久以后才发现明显正确的答案,从而导致尴尬。
我们的开发人员在他们编写的复杂代码中也会犯错误,但他们有 Eclipse 和各种插件(例如FindBugs)可以在输入时捕获错误。我想给运营商类似的东西 - 理想情况下它会看到
SELECT U.NAME, C.NAME FROM USER U, COMPANY C WHERE U.NAME = 'ibell';
在你执行之前,它会说“嘿,你意识到这是一个笛卡尔积吗?你确定要这样做吗?” 它不必非常聪明——发现明显缺少连接条件和类似的明显错误就可以了。
看起来TOAD应该这样做,但我似乎无法找到有关此类功能的任何信息。有没有像 TOAD 这样的其他工具可以提供这种半智能纠错?
更新:我忘了提到我们正在使用 MySQL。