我桌上有很多记录。当我执行以下查询时,它会花费很多时间。如何提高性能?
SET ROWCOUNT 10
SELECT StxnID
,Sprovider.description as SProvider
,txnID
,Request
,Raw
,Status
,txnBal
,Stxn.CreatedBy
,Stxn.CreatedOn
,Stxn.ModifiedBy
,Stxn.ModifiedOn
,Stxn.isDeleted
FROM Stxn,Sprovider
WHERE Stxn.SproviderID = SProvider.Sproviderid
AND Stxn.SProviderid = ISNULL(@pSProviderID,Stxn.SProviderid)
AND Stxn.status = ISNULL(@pStatus,Stxn.status)
AND Stxn.CreatedOn BETWEEN ISNULL(@pStartDate,getdate()-1) and ISNULL(@pEndDate,getdate())
AND Stxn.CreatedBy = ISNULL(@pSellerId,Stxn.CreatedBy)
ORDER BY StxnID DESC
stxn表具有超过100,000条记录。
该查询从asp.net c#中的报表查看器运行。
最佳答案
当我尝试执行具有多个搜索条件(可能是可选的)的搜索查询时,这是我的热门文章。
http://www.sommarskog.se/dyn-search-2008.html
查询的最大问题是column=ISNULL(@column, column)
语法。 MSSQL不会为此使用索引。考虑将其更改为(column = @column AND @column IS NOT NULL)
关于sql - 如何提高查询性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6876189/