sqlserver的查询性能调优
我有两张桌子:sqlserver的查询性能调优,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我有两张桌子: SELECT [DealerdistributionId] ,[DealerCode] ,[BarCode] ,[BarCode2] ,[Model] ,[DONumber] ,[DistributionDate] FROM [tblDealerDistributionDetails] 产生这些结果 另一张表: SELECT [ProductRegID] ,[ProductType]
SELECT [DealerdistributionId]
,[DealerCode]
,[BarCode]
,[BarCode2]
,[Model]
,[DONumber]
,[DistributionDate]
FROM [tblDealerDistributionDetails]
产生这些结果
另一张表:
SELECT [ProductRegID]
,[ProductType]
,[ProductModelID]
,[SalerID]
,[ProductID]
,[PhoneNumber]
,[RegistrationDate]
FROM [tblProductRegistration]
结果
第二个表tblProductRegistration记录第一个表tblDealerDistributionDetails中条形码或条形码2中的ProductID,但仅记录一个条形码或条形码2
我想知道哪个经销商在TBLPProductRegistration中有多少型号
输出:
TBLPProductRegistration中的DelarCode、Model、TotalEntry
我试过这个
select DealerCode, COUNT(*) as [Activated]
from tblDealerDistributionDetails
where
( BarCode in (select ProductID from tblProductRegistration where RegistrationDate >='2016-03-01' and RegistrationDate <='2016-03-02')
or
BarCode2 in (select ProductID from tblProductRegistration where RegistrationDate >='2016-03-01' and RegistrationDate <='2016-03-02') )
and Model= 'Olvio L12' group by DealerCode
对于特定模型“Olvio L12”,但它会导致性能问题。我需要更快的查询性能
具有更快的查询性能。请提供帮助。您是否要求我们编写加入查询?你试过什么?结果如何,表现如何?是的。除了让我们写你的代码,因为你甚至不愿意尝试一些东西。我可以建议你去一个网站,在那里你可以雇人为你工作吗?我们不是一家编码服务公司。我投票决定以离题的方式结束这个问题,因为你没有表现出自己解决问题的意愿,将stackoverflow.com作为免费编码服务。抱歉,编辑太晚。我尝试过此方法,但在中会导致性能问题。因此,我希望提高性能,而不是在QueryInDect中。您需要为性能设计表和索引,然后有一个使用此设计的查询来获得好处。我只是最近才给了一个。也许不是100%相似,但看看你能从答案中选择什么。
CREATE NONCLUSTERED INDEX ix_p
ON tblProductRegistration (RegistrationDate, ProductID)
GO
CREATE NONCLUSTERED INDEX ix_d
ON tblDealerDistributionDetails (model, DealerCode) INCLUDE (BarCode, BarCode2)
GO
SELECT DealerCode, COUNT_BIG(*) AS [Activated]
FROM tblDealerDistributionDetails d
WHERE model = 'Olvio L12'
AND EXISTS(
SELECT *
FROM tblProductRegistration r
WHERE r.RegistrationDate BETWEEN '20160301' AND '20160302'
AND r.ProductID IN (d.BarCode, d.BarCode2)
)
GROUP BY DealerCode
--OPTION(RECOMPILE)