我想了解數據是如何真正處理和服務器之間發送的,但我無法找到一步步詳細說明。爲了解釋使用例如:如何在3臺計算機之間處理數據庫查詢數據?
假設你有100M的記錄,這是10GB的大小,你需要使用一個單獨的桌面計算機執行腳本通過LAN transfter 2和數據庫服務器之間的數據。總共有三臺電腦:
- 服務器A有源數據庫您正在選擇數據。
- 服務器B你正在寫的數據到目標數據庫。
- 桌面C是你在哪裏執行你的腳本,使用像SQL Developer或蟾蜍客戶端工具。
的SQL會是這個樣子:
Insert Into ServerBDatabase.MyTable (MyFields)
Select MyFields
From ServerADatabase.MyTable
有人能解釋其中的數據進行處理,以及如何發出?甚至指向我一個很好的資源來閱讀這個主題。
例如,我想明白,如果這件事情是這樣的:
在桌面下的客戶端工具將查詢發送命令到DBMS服務器A在這一點上,所有這些都是通過LAN發送的是命令的文本。
在服務器A的DBMS接收查詢命令,解釋它,然後 進程在服務器A中的數據在這一點上,全10GB數據被加載到存儲器,用於處理和沒有通過LAN被髮送。
在服務器A上完成完整的100M記錄處理後,服務器A上的DBMS將查詢命令的文本和通過LAN的全部100M記錄的數據發送到服務器B上的DBMS。的制約,該數據被分解並以每秒比特的一些量在這些數據塊在量通過LAN發送的組塊,並裝載在服務器B上的存儲器中。
由於服務器B上的數據庫管理系統通過局域網接收數據塊,因此它將它重新組合在服務器B的內存中,以將其重新恢復到完整的100M記錄狀態。
一旦100M記錄完全由服務器B上的DBMS拼接在一起,服務器B上的DBMS就會執行查詢命令,以便將目標表中的記錄從目標表中一次一行地插入,並將其寫入到磁盤。
所有這些都是假設,所以我知道我可以全部錯誤,這就是爲什麼我尋求幫助。請幫助糾正我的錯誤和/或填寫空白。
」在服務器A上處理了完整的100M記錄之後,服務器A上的DBMS將查詢命令的文本和通過LAN的完整100M記錄數據發送到服務器B上的DBMS。「.. ..我不認爲這是如何工作的。 –
從Oracle開始,「From ServerADatabase.MyTable」無效。 –