我有一个SQL查询需要大约1分钟才能获得75,000条记录。SQL查询1分钟可获得75,000条记录
我想知道是否有办法通过改变任何东西来使其更快。
SELECT c.CampaignID,
c.Description,
c.Active,
c.CampaignTypeID,
CASE c.CampaignTypeID
WHEN 1 THEN 'TEST1'
WHEN 2 THEN 'TEST2'
WHEN 3 THEN 'TEST3'
WHEN 5 THEN 'TEST4'
WHEN 6 THEN 'TEST5'
END AS CampaignType,
CASE c.Active
WHEN 1 THEN 'TEST6'
ELSE 'TEST7'
END AS style,
CASE c.Active
WHEN 1 THEN 'Deactivate'
ELSE 'Activate'
END AS stat,
REPLACE(REPLACE(c.Description,'\\','\\\\'),'''','\\') AS LinkDescription,
@CompanyID AS CompanyID
FROM Campaign c WITH(nolock)
LEFT OUTER JOIN UserPermissions
ON up.CampaignID=c.CampaignID
AND up.UserID = @UserID
WHERE c.CompanyID = @CompanyID
and c.IsCampaignHidden = 0
AND (@IsAdmin = 0
and case when (@IsAdmin = 0) then up.UserID else 0 end is not null
and case when (@IsAdmin = 0) then up.[View] else 1 end = 1
感谢任何帮助。
您是否查看查询分析器的结果? – Namphibian
您有[执行计划](http://www.sqlshack.com/sql-server-query-execution-plans-viewing-plans/)吗? – DaveShaw
基于你过滤到左边的连接表,我假设你不需要左边的部分。我会尝试删除它。任何可能添加索引到CompanyID,CampaignID,UserId字段。 –