我已經使用下面的查詢來填充我的表適配器,但是當我的應用程序運行它是如此之慢,但是當我運行在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在兩種模式下測試的速度相當慢 –