現在、HTTPリクエストに応答するC#アプリケーションがあります。HTTPリクエスト(XML)の本文はSQL Serverに渡され、その時点でデータベースエンジンは正しい命令を実行します。指示の1つは、顧客のID(InvoiceLoad)を使用して請求書に関する情報をロードするために使用されます。
<InvoiceLoad ControlNumber="12345678901">
<Invoice>
<CustomerID>johndoe@gmail.com</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)
指図。
ただし、このクエリは1分間に数千回実行される可能性があるため、できるだけ速くしたいと思います。これを行う1つの方法は、CROSS APPLY(これまで使用したことがない)を使用することかもしれないと聞いています。それが解決策ですか?そうでない場合、このクエリをできるだけ速く行うにはどうすればよいでしょうか。すべての提案は大歓迎です!