2015-11-08 63 views
-1

我想到了這個解決方案:從Web服務獲取數據,插入表中,然後與其他表連接,但這會影響性能,此後,我必須刪除所有這些數據。 還有其他方法可以做到這一點嗎?如何通過一個sql表加入從Web服務返回的記錄集

+0

你的問題太廣泛了。 –

+0

可以通過更明確地說明應用程序使用哪些元素來改進問題。 – hardmath

回答

0

您不從Web服務返回記錄集。 HTTP對你的數據庫或結果集一無所知。

HTTP請求和響應是字符串。您必須解析出數據,將其轉化爲查詢並對其進行處理。

性能很大程度上取決於諸如在WHERE子句中具有適當索引的列,查詢的性質以及許多您在此未提供的細節。

這聽起來像是「客戶端與服務器」的經典案例。爲什麼不寫一個存儲過程來完成數據庫服務器上的所有工作?您正在描述將大量數據帶入中間層,操縱它,放回並刪除它的許多工作?我會弄清楚如何讓數據庫做到這一點。

+0

對不起。我用「結果集」來表示信息/數據。我不知道「結果集」是指表格。 – A5300

+0

@ A5300:實際上,標題包含詞組* *,它是許多數據庫API中的表格式結構。您似乎對這個問題失去了興趣,這需要縮小範圍以幫助其他讀者。如果你不打算改進它,也許你應該考慮自我刪除(雖然沒有有回報的答案)。 – hardmath

0

不,你並不需要保存任何東西到數據庫中,有許多方法,以XML來錶轉換,但不保存到數據庫

例如Oracle數據庫可以使用的XMLTable /的XMLType/XQuery的/ dbms_xml 到XML結果轉換從Web服務到表,然後在查詢

例如使用它:

,如果你使用Oracle 12c中您可以使用JSON_QUERY:Oracle 12С JSON

的XMLTable:oracle-xmltable-tutorial

本週討論有關converting xml into table data

0

是常見的考慮有一個三層結構的應用程序:用戶界面,「商業邏輯」 /中間件和後臺數據管理。從Web服務中提取記錄並(暫時)將它們插入到SQL數據庫中的表中的想法具有一些優點,因爲您希望執行的「連接」可以在SQL中快速實現。

Oracle(與其他SQL DBMS一樣)功能temporary tables僅針對這些任務進行了優化。

但是,考慮到您對性能的擔憂,這可能不是最好的方法。假設您的「中間件」層是使用Java編寫的,並且給定了問題上的標籤,並且沒有任何明確的描述表明您可能正在嘗試雙層設計,其中用戶界面程序直接與後端數據連接管理資源。

鑑於您對Oracle產品的明顯投資,您可能會發現將Oracle Middleware元素合併到您的設計中是值得的。特別是Oracle Fusion Middleware承諾實現Web服務和數據庫之間的「數據集成」。