Database-Design

如何從數據庫獲取中生成一致的實體圖(例如從 10 個表)

  • August 30, 2020

假設我在數據庫中有許多表需要連接在一起以獲得整個實體圖的單一一致視圖。我是否被迫將其作為單個查詢來執行?我不關心鎖,我只想確保圖表在查詢執行時是一致的。

我擔心的是在單個查詢中將大量實體連接在一起的性能之一。是否可以在多個查詢中執行此操作,但仍然實現與將這些單獨的選擇作為單個查詢執行相同級別的一致性?

是否可以在多個查詢中執行此操作,但仍然實現與將這些單獨的選擇作為單個查詢執行相同級別的一致性?

這取決於 RDBMS。

在 SQL Server 中,您可以使用具有 SNAPSHOT 事務隔離級別的事務來跨多個查詢獲得一致的數據庫視圖。

Oracle 稱為 SERIALIZABLE 的隔離級別做同樣的事情。

我擔心的是在單個查詢中將大量實體連接在一起的性能之一

這是一個有效的問題,因為大多數 RDBMS 引擎只返回查詢的表格結果。為複雜對像圖生成單個表格結果的策略可能導致大型結果集和復雜查詢。這一直是 ORM 的問題。

引用自:https://dba.stackexchange.com/questions/274618