我已经使用下面的查询来填充我的表适配器,但是当我的应用程序运行它是如此之慢,但是当我运行在SQL管理它的快!让我知道我的选择的问题,如何可以更优化!优化SQL选择tableadapter填充方法
SELECT (
SELECT FullName AS Expr1
FROM Sales.CustomerInfo
WHERE (AccountFK = Ordering.Orders.CustomerFK)
) AS Customer
,Ordering.Orders.OrderID
,Ordering.Orders.OrderDate
,Ordering.Orders.OrderWayBill
,Ordering.Orders.ExpireDate
,Ordering.ShipperInfo.ShipperCompany
,Production.Store.StoreName
,Production.Product.ProductName
,Ordering.Orders.Quantity
,Ordering.Orders.Price
,Ordering.Orders.ShipAddress
,Ordering.Orders.Description1
,Ordering.Orders.Description2
,Ordering.Orders.Discount
,Ordering.OrderStatus.Description
,Sales.PaymentTerm.Description AS PaymentTerm
,Ordering.Orders.CustomerFK
,Ordering.Orders.ShipperFK
,Ordering.Orders.StoreFK
,Ordering.Orders.ProductCategoryFK
,Ordering.Orders.ProductFK
,Ordering.Orders.OrderStatusFK
,Ordering.Orders.PaymentTermFK
,Ordering.Orders.FinancialPeriodFK
,Ordering.Orders.CompanyInfoFK
,DueDate = (
SELECT TOP 1 duedate
FROM (
SELECT duedate = DATE
FROM banking.receivedcash
WHERE orderfk = Ordering.Orders.OrderID
UNION ALL
SELECT duedate = duedate
FROM banking.receivedcheque
WHERE orderfk = Ordering.Orders.OrderID
) AS a
ORDER BY duedate DESC
)
FROM Ordering.Orders
LEFT OUTER JOIN Ordering.ShipperInfo
ON Ordering.Orders.ShipperFK = Ordering.ShipperInfo.ShipperInfoID
LEFT OUTER JOIN Production.Product
ON Ordering.Orders.ProductFK = Production.Product.ProductID
LEFT OUTER JOIN Production.Store
ON Ordering.Orders.StoreFK = Production.Store.StoreID
LEFT OUTER JOIN Ordering.OrderStatus
ON Ordering.Orders.OrderStatusFK = Ordering.OrderStatus.OrderStatusID
LEFT OUTER JOIN Sales.PaymentTerm
ON Ordering.Orders.PaymentTermFK = Sales.PaymentTerm.PaymentTermID
您是否在调试或发布模式下运行您的应用程序? – TGlatzer
只要将SQL放入查询中,那么性能应该是相同的。顺便说一句:你的SQL通常看起来很慢,所有这些外连接。你确定调用代码是罪魁祸首吗? –
@ Grumbler85在两种模式下测试的速度相当慢 –