為什么SQLANSI-92標(biāo)準(zhǔn)沒有比ANSI-89更好地采用呢?在我工作過的每一家公司,我都發(fā)現(xiàn)人們?nèi)匀辉谟肁NSI-89標(biāo)準(zhǔn)編寫SQL查詢:select a.id, b.id, b.address_1from person a, address bwhere a.id = b.id而不是ANSI-92標(biāo)準(zhǔn):select a.id, b.id, b.address_1from person ainner join address bon a.id = b.id對于這樣一個非常簡單的查詢,可讀性沒有太大的差別,但是對于大型查詢,我發(fā)現(xiàn)將我的聯(lián)接條件分組并列出表會使我們更容易發(fā)現(xiàn)JOIN中可能出現(xiàn)的問題,讓我們在WHERE子句中保留所有篩選。更不用說,我覺得外部聯(lián)接比Oracle中的(+)語法直觀得多。當(dāng)我試圖向人們傳教ANSI-92時,使用ANSI-92比ANSI-89有什么具體的性能效益嗎?我會自己嘗試,但是我們這里的Oracle設(shè)置不允許我們使用解釋計劃-不希望人們試圖優(yōu)化他們的代碼,對嗎?
為什么SQLANSI-92標(biāo)準(zhǔn)沒有比ANSI-89更好地采用呢?
料青山看我應(yīng)如是
2019-07-05 15:19:30