gpt4 book ai didi

sql - 为什么 SQL ANSI-92 标准没有比 ANSI-89 更好地被采用?

转载 作者:行者123 更新时间:2023-12-03 04:43:56 30 4
gpt4 key购买 nike

在我工作过的每家公司,我发现人们仍然按照 ANSI-89 标准编写 SQL 查询:

select a.id, b.id, b.address_1
from person a, address b
where a.id = b.id

而不是 ANSI-92 标准:

select a.id, b.id, b.address_1
from person a
inner join address b
on a.id = b.id

对于像这样的极其简单的查询,可读性没有太大差异,但对于大型查询,我发现将连接条件分组并列出表格可以更轻松地查看我的查询中可能存在问题的地方加入,让我将所有过滤保留在 WHERE 子句中。更何况我觉得外连接比Oracle中的(+)语法直观得多。

当我尝试向人们宣传 ANSI-92 时,使用 ANSI-92 相对于 ANSI-89 是否有任何具体的性能优势?我会自己尝试一下,但是我们这里的 Oracle 设置不允许我们使用 EXPLAIN PLAN - 不希望人们尝试优化他们的代码,不是吗?

最佳答案

根据 Peter Gulutzan 和 Trudy Pelzer 的“SQL 性能调优”,在他们测试的六到八个 RDBMS 品牌中,SQL-89 与 SQL-92 样式连接的优化或性能没有差异。人们可以假设大多数 RDBMS 引擎在优化或执行查询之前将语法转换为内部表示,因此人类可读的语法没有区别。

我还尝试传播 SQL-92 语法。在它被批准十六年后,是时候人们开始使用它了!而且所有品牌的 SQL 数据库现在都支持它,因此没有理由继续使用非标准的 (+) Oracle 语法或 *= Microsoft/Sybase 语法。

至于为什么打破开发者社区的 SQL-89 习惯如此困难,我只能假设有大量“金字塔底层”的程序员通过复制和粘贴、使用书籍中的古老示例进行编码,杂志文章或其他代码库,这些人不会抽象地学习新语法。有些人模式匹配,有些人死记硬背。

不过,我逐渐发现人们比以前更频繁地使用 SQL-92 语法。自 1994 年以来,我一直在网上回答 SQL 问题。

关于sql - 为什么 SQL ANSI-92 标准没有比 ANSI-89 更好地被采用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/334201/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com