ITPUB 版主丁俊在技術分享中系統闡述了 SQL 與 PL/SQL 開發的核心認知體系,強調「能用 SQL 解決的絕不寫 PL/SQL」,PL/SQL 是 SQL 的補充而非替代。
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY。理解此順序能大幅減少錯誤 SQL,並支撐複雜業務邏輯表達。CBO 根據代價模型選擇最優存取路徑(全表掃描、索引範圍掃描、哈希連接、嵌套循環等)。案例展示同一邏輯查詢在不同統計資訊下生成截然不同的物理計劃,驗證「統計資訊準確性是 CBO 做出正確決策的前提」。
分析函數(OVER (PARTITION BY ... ORDER BY ...))能在保留明細行的同時計算分組聚合、排名、累計、行間比較,是報表與複雜業務邏輯的利器。
ROW_NUMBER, RANK, DENSE_RANK)、聚合報表(SUM, AVG, RATIO_TO_REPORT)、行比較(LEAD, LAG, FIRST_VALUE)、統計(STDDEV, VAR_POP)。ROWS vs RANGE、WINDOW 子句與 PARTITION/ORDER BY 關係。總結: 精通 SQL 邏輯順序是寫對查詢的基礎;讀懂執行計劃是調優的入場券;善用分析函數能用聲明式 SQL 解決曾需程式化邏輯的問題,大幅提升開發效率與效能。