为什么SQLANSI-92标准没有比ANSI-89更好地采用呢?
在我工作过的每一家公司,我都发现人们仍然在用ANSI-89标准编写SQL查询:
select a.id, b.id, b.address_1from person a, address bwhere a.id = b.id
而不是ANSI-92标准:
select a.id, b.id, b.address_1from person ainner join address bon a.id = b.id
对于这样一个非常简单的查询,可读性没有太大的差别,但是对于大型查询,我发现将我的联接条件分组并列出表会使我们更容易发现JOIN中可能出现的问题,让我们在WHERE子句中保留所有筛选。更不用说,我觉得外部联接比Oracle中的(+)语法直观得多。
当我试图向人们传教ANSI-92时,使用ANSI-92比ANSI-89有什么具体的性能效益吗?我会自己尝试,但是我们这里的Oracle设置不允许我们使用解释计划-不希望人们试图优化他们的代码,对吗?