我已經瀏覽了Date和Silberschatz,但似乎無法找到我的這些具體問題的答案。關於關係數據庫的一些基本問題
如果2個數據庫用戶發出查詢 - 比如說'select * from AVERYBIGTABLE;' - 查詢結果在哪裏將被存儲在一般情況下......即與結果集的大小無關?
a。在DBMS服務器的OS管理的物理/虛擬內存中?
b。在DBMS管理的臨時文件中?
是否每個連接都維護查詢結果集?
如果查詢結果集確實是每個連接都維護的,那麼如果連接池有效(通過一層代碼位於DBMS之上)呢?那麼,每個查詢(而不是每個連接)都不會保留結果集?
如果數據庫在其用戶同時發出select查詢時實時更改,那麼查詢發出者已經執行但尚未(完全)「消耗」的查詢會發生什麼情況?例如,假設結果集有50,000行;如果前面的查詢由DBMS的任何用戶重新發布,那麼當前另一個用戶執行插入/刪除操作時,用戶當前正在迭代100次,這樣,如果先前的查詢將被重新發出,那麼它將導致多於/少於50,000行?另一方面,如果數據庫不能實時更改,如果2個用戶發出的每個查詢具有相同但非常大的結果集,DBMS是否保留2個相同的結果集副本,或者它會有一個共享的副本嗎?
非常感謝提前。
可以想見,現在,他們爲什麼AREN沒有涵蓋在關係理論文本中。但是,那麼,我會在哪裏找到他們的答案?在產品特定手冊中? JEE被吹捧爲獨立於底層的數據庫管理系統(DBMS)......它告訴我至少應該有一些不變的概念(或者一組概念/假設),應用程序開發人員可以選擇編程。 – Harry 2009-06-19 05:42:56
而對於你對#4的迴應,結果集產生後會發生什麼? (謝謝,btw,花點時間回覆。) – Harry 2009-06-19 05:44:06