小编tch*_*ock的帖子

不存在与不存在:效率

我一直认为不存在是不是存在的方式,而不是使用不处于条件状态.但是,我对我一直在使用的查询进行比较,我注意到Not In条件的执行实际上似乎更快.任何有关为什么会出现这种情况的见解,或者如果我在此之前做出一个可怕的假设,我将不胜感激!

问题1:

SELECT DISTINCT 
a.SFAccountID, a.SLXID, a.Name FROM [dbo].[Salesforce_Accounts] a WITH(NOLOCK)
JOIN  _SLX_AccountChannel b WITH(NOLOCK)
ON a.SLXID = b.ACCOUNTID
JOIN [dbo].[Salesforce_Contacts] c WITH(NOLOCK)
ON a.SFAccountID = c.SFAccountID
WHERE b.STATUS IN ('Active','Customer', 'Current')
AND c.Primary__C = 0
AND NOT EXISTS
(
SELECT 1 FROM [dbo].[Salesforce_Contacts] c2 WITH(NOLOCK)
WHERE a.SFAccountID = c2.SFAccountID
AND c2.Primary__c = 1
);
Run Code Online (Sandbox Code Playgroud)

问题2:

SELECT   
DISTINCT
a.SFAccountID FROM [dbo].[Salesforce_Accounts] a WITH(NOLOCK)
JOIN  _SLX_AccountChannel b WITH(NOLOCK)
ON a.SLXID = b.ACCOUNTID
JOIN [dbo].[Salesforce_Contacts] c WITH(NOLOCK) 
ON a.SFAccountID = c.SFAccountID …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server exists sql-execution-plan

8
推荐指数
1
解决办法
2997
查看次数

使用class属性启用/禁用计时器

好的,希望我不要过于复杂.我知道我可以使用timer.Enabled = false或timer.Stop()来停止计时器,但我想将一个属性合并到我的主播放器类中,这将控制计时器.举例来说,如果我的球员有一个布尔属性"愈合,"我想,当玩家的属性设置为医治== true时,计时器开始,当player.healing属性更改为愈合= = false,让计时器停止.这样做的原因是,我想我的游戏主循环继续运行,而我的玩家继续玩游戏,医治,以及当采取动作在游戏中,或者当玩家达到完全健康,定时器停止.

目前我有一个运行每个计时器滴答的功能,并评估播放器是否完全健康,如果是,则停止计时器.但是,我只是认为能够将bool属性从false转换为true,反之亦然,会更有用.非常感谢任何帮助/想法/建议!

c#

3
推荐指数
1
解决办法
251
查看次数

标签 统计

c# ×1

exists ×1

sql ×1

sql-execution-plan ×1

sql-server ×1

t-sql ×1