SQL包含单个元素的速度极慢

时间:2017-06-28 07:15:34

标签: sql linq

我有以下查询(通过linq构建),这是CountTable1元素的简单Table2,它们与SELECT 1 AS [C1], cast(1 as bit) AS [C2] FROM [dbo].[Table1] AS [Extent1] WHERE ( EXISTS (SELECT 1 AS [C1] FROM [dbo].[myFunction]([Extent1].[Table1Id]) AS [Extent2] WHERE ([Extent2].[Table2Id] IN (cast('02df5a88-b189-4218-8819-2d0a35887d26' as uniqueidentifier))) AND ([Extent2].[Table2Id] IS NOT NULL) )) 中的条目有某种关联。 此查询运行大约2分钟。

Id

如果我针对[Extent2].[Table2Id]添加要检查的其他Contains,则查询会在0.5秒内完成。

我已经尝试将IN(...) - 调用(转换为SQL ==)更改为Id,以防只提供一个myFunction - 但仍然相同。 所以,现在,我正在添加转储ID,以防只有一个给定。

我在这里做错了什么?

Table2 SQL函数返回Table1Id的列表 - 给定Table2.ParentId = Table2.Id的条目,这些条目是自引用的,以便创建父子关系,例如: var ids = new Guid[] {new Guid("14763ded-3a38-43d8-a3e4-b1eb17870136"), Guid.NewGuid()}; Table1.Count(f => (dbContext.myFunction(f.Table1Id)).Any(c => (ids.Contains(c.Table2Id))));

这是我使用的linq查询(简化):

def groupl1(x):
    return tf.reduce_sum(tf.sqrt(tf.to_float(x.get_shape()[1])) * tf.sqrt(tf.reduce_sum(x ** 2, axis=1)))

0 个答案:

没有答案