我目前有一個響應HTTP請求的C#應用程序。 HTTP請求(XML)的主體被傳遞給SQL Server,此時數據庫引擎執行正確的指令。其中一個指令是用來加載有關發票信息使用客戶(InvoiceLoad)的ID:使用XML輸入的SQL SELECT
<InvoiceLoad ControlNumber="12345678901">
<Invoice>
<CustomerID>[email protected]</CustomerID>
</Invoice>
</InvoiceLoad>
我需要執行對發票表的SELECT操作(其中包含關聯的電子郵件地址)。
我已經嘗試使用:
SELECT 'Date', 'Status', 'Location'
FROM Invoices
WHERE Email_Address = Invoice.A.value(.)
using an xml.nodes('InvoiceLoad/Invoice/CustomerId') Invoice(A)
命令。
但是,由於此查詢可能每分鐘運行幾千次,因此我希望儘可能快地完成此操作。我聽說有一種方法可以使用CROSS APPLY(我從未使用過)。這是解決方案嗎?如果不是這樣,我將如何儘快完成這個查詢?任何和所有的建議非常感謝!
感謝您的回答!但是,當XML模式更新爲允許多個電子郵件地址時,我會使用什麼。不幸的是,這將在今後6個月左右發生。 – TelJanini
@TelJanini:這是一個固定的最大數量嗎?例如。 1-3個電子郵件地址?或者它基本上是*任何數量的電子郵件地址? –
現在,它只有1個,但在6個月內,我需要處理任意數量的電子郵件地址。再次感謝你的幫助! – TelJanini