Delphi xe3 Delphi-SQLServer查询需要很长时间才能运行
德里XE3企业版,SQL Server 2008 当我运行以下查询时,在Delphi程序中运行需要4秒钟。当我从SQLServerManagementStudio运行它时,运行只需要0.5秒Delphi xe3 Delphi-SQLServer查询需要很长时间才能运行,delphi-xe3,Delphi Xe3,德里XE3企业版,SQL Server 2008 当我运行以下查询时,在Delphi程序中运行需要4秒钟。当我从SQLServerManagementStudio运行它时,运行只需要0.5秒 SELECT SUM(ISNULL(soi.ExtendedUnitPrice, 0)) AS TotalExtendedUnitPrice, SUM(ISNULL(soi.ExtendedUnitCost, 0)) AS TotalExtendedUnitCost,
SELECT
SUM(ISNULL(soi.ExtendedUnitPrice, 0)) AS TotalExtendedUnitPrice,
SUM(ISNULL(soi.ExtendedUnitCost, 0)) AS TotalExtendedUnitCost,
SUM(ISNULL(soi.OriginalTotal, 0)) AS TotalOriginalTotal,
SUM(ISNULL(soi.LineWeight, 0)) AS TotalLineWeight
FROM SalesOrderItems soi
WHERE (soi.SalesOrderID = :SalesOrderID)
为了解决这个问题,我将soi.saleorderid添加到字段列表中,并添加了一个groupbysalesforderid。现在很快。这个问题与德尔福无关。Delphi将SQL语句传递给服务器以执行。您应该查看SELECT的执行计划,并查看它告诉您什么影响性能。这是事实,但从Delphi运行它仍然需要4-5秒,但在SQL server上运行时不到0.5秒。一旦我添加了SalesOrderID字段(该字段已编制索引),它在工作站上的运行速度几乎与通过SQLServerManagementStudio在SQLServer上的运行速度一样快。我不知道为什么,但在Delphi中添加索引外键加快了速度。我是SQL Server新手,所以我想我应该从一开始就知道添加索引字段。我假设sql server使用索引来加速操作。