Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql Linq查询-如何改进以下查询?_Linq To Sql - Fatal编程技术网

Linq to sql Linq查询-如何改进以下查询?

Linq to sql Linq查询-如何改进以下查询?,linq-to-sql,Linq To Sql,我在我的asp.net网站上有一个Linq到Sql查询 这个查询太慢了,我相信可以改进 有人能帮我重写这个查询吗? 我认为使用“加入”会使它更快,但无法正确地进行( 以下是查询:(输入参数:INT_性别) 查询基于3个表。 桌子: 1.用户 2.文件 3.答案 users表中的Username列是identity 每个用户可以有多个文件,也可以没有文件 每个用户可以有多个答案,也可以没有答案 谢谢! Dan以下是我用普通T-SQL破译这一点的小小尝试。希望这能有所帮助 SELECT u.u

我在我的asp.net网站上有一个Linq到Sql查询

这个查询太慢了,我相信可以改进

有人能帮我重写这个查询吗?

我认为使用“加入”会使它更快,但无法正确地进行(


以下是查询:(输入参数:INT_性别)

查询基于3个表。 桌子: 1.用户 2.文件 3.答案

  • users表中的Username列是identity
  • 每个用户可以有多个文件,也可以没有文件
  • 每个用户可以有多个答案,也可以没有答案
谢谢!
Dan

以下是我用普通T-SQL破译这一点的小小尝试。希望这能有所帮助

SELECT u.username, f.id, a.value, a.approved
FROM users AS u
     JOIN files AS f ON u.username = f.username
     JOIN answers AS a ON a.username = u.username
     JOIN questions AS q ON a.q_id = q.id      
WHERE u.gender = @INT_GENDER
      AND u.age > 25
      AND f.approved = 1
      AND a.approved = 1
      AND q.type = 1

INT_SEXT??如果您使用的是男性或女性,为什么不使用bool。为了获得最佳性能,请使用存储过程。这是因为存储过程缓存执行计划,这对快速检索非常有用。谢谢。1.INT_SEXT可以是0,1,2。2.我更喜欢使用linq,我知道我也可以进行符合要求的查询,但我正在寻找wri首先是更好的查询。@AboutDev准备好的查询(如LINQ to SQL中使用的查询)也会缓存它们的执行计划。关于存储过程优越性的城市传说已经过时了。
SELECT u.username, f.id, a.value, a.approved
FROM users AS u
     JOIN files AS f ON u.username = f.username
     JOIN answers AS a ON a.username = u.username
     JOIN questions AS q ON a.q_id = q.id      
WHERE u.gender = @INT_GENDER
      AND u.age > 25
      AND f.approved = 1
      AND a.approved = 1
      AND q.type = 1