我有3个版本的查询,最终返回相同的结果.
当向一个相对较小的表添加额外的内部连接时,其中一个变得非常慢,并且在where子句中使用参数变量.
对于快速和慢速查询(包括在每个查询下面),执行计划是非常不同的.
我想了解为什么会发生这种情况以及如何防止它.
此查询需要<1秒.它没有额外的内连接,但它在where子句中使用参数变量.
declare @start datetime = '20120115'
declare @end datetime = '20120116'
select distinct sups.campaignid
from tblSupporterMainDetails sups
inner join tblCallLogs calls on sups.supporterid = calls.supporterid
where calls.callEnd between @start and @end
|--Parallelism(Gather Streams)
|--Sort(DISTINCT ORDER BY:([sups].[campaignID] ASC))
|--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([sups].[campaignID]))
|--Hash Match(Partial Aggregate, HASH:([sups].[campaignID]))
|--Hash Match(Inner Join, HASH:([calls].[supporterID])=([sups].[supporterID]))
|--Bitmap(HASH:([calls].[supporterID]), DEFINE:([Bitmap1004]))
| |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([calls].[supporterID]))
| |--Index Seek(OBJECT:([GOGEN].[dbo].[tblCallLogs].[IX_tblCallLogs_callend_supporterid] AS [calls]), SEEK:([calls].[callEnd] >= '2012-01-15 00:00:00.000' AND [calls].[callEnd] <= '2012-01-16 00:00:00.000') ORDERED FORWARD) …Run Code Online (Sandbox Code Playgroud) 我制作了一个Android虚拟设备.它使用Intel HAXM在SDK模拟器上运行.我能够在Visual Studio(调试设备下拉列表)中看到它并在其上调试我的应用程序.当我没有物理设备时,这非常适合.然后发生了什么事!?!它现在拒绝出现?
在过去的一周里,我尝试过(没有特别的顺序):
我读过这些.也没有快乐......
其他信息: