tutorial - sql learn




在過去的十年中,關係數據庫的創新是什麼 (6)

像RANK這樣的分析函數

關係數據庫的SQL實現已經有了25年的歷史(從System R和Ingres開始)。 即使主要(鬆散地堅持)標準是ANSI-92(雖然有後來的更新)是一個很好的15歲。

在過去十年左右,基於SQL的數據庫有哪些創新可以想到? 我特別排除了OLAP,Columnar和其他非關係(或至少非SQL)創新。 我也想排除“應用程序服務器”類型的功能和捆綁(如報告工具)

雖然基本方法一直保持相當穩定,但我可以想到:

  • 可用性
  • 能夠處理更大的數據集
  • 易於維護和配置
  • 支持更高級的數據類型(blob,xml,unicode等)

任何其他你可以想到的?


我不確定是否要包括特定於供應商的創新(我也不完全確定其他數據庫引擎不能完成這項工作),但是SQL Server 2005會將遞歸transact-sql查詢添加到其語言中。 我發現它們對迭代分層數據非常有用。 我相信2008年增加了一些與分層數據相關的新功能,但我沒有仔細看過。


我認為大部分的進展都在性能 - 查詢性能分析器和集群領域。


我認為最大的創新領域可能在於數據複製 - 可用性和可靠性。 大部分其他領域更加增量。 通過指定十年,您可以省略ORDBMS的東西 - 可擴展性; 那是在1997年出現的。


SELECT (invoiceprice * detailweight) / SUM(weight) OVER(PARITTION BY invoice) as weighted, * 
FROM tblInvoiceDetails

窗口函數對於加權平均值等事情以及之前需要CURSORS的其他事情來說非常棒。


  • 哈希連接
  • 基於成本的優化器(幾乎翻轉了查詢的頭)
  • 分區(實現更好的VLDB管理)
  • 並行(多線程)查詢處理
  • 集群(不僅僅是可用性,也是可伸縮性)
  • SQL的更大的靈活性以及SQL與3GL語言的更容易的集成
  • 更好的診斷功能




innovation