我目前有一个响应 HTTP 请求的 C# 应用程序。HTTP 请求 (XML) 的正文被传递到 SQL Server,此时数据库引擎执行正确的指令。其中一条指令用于使用客户的 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)
命令。
但是,由于此查询每分钟可能运行数千次,因此我希望使其尽可能快。我听说这样做的一种方法可能是使用 CROSS APPLY (我从未使用过)。那是解决方案吗?如果没有,我将如何尽可能快地进行此查询?非常感谢任何和所有建议!