sql server性能:join或where

ruarlubt  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(260)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

9个月前关门了。
改进这个问题
我有一个问题,我想确定我做这件事的最佳方式。如果我有三列:
表:发票
发票号码
发票金额
发票日期
然后我有一个temp表,它有三个相同的字段,在这三个字段中我将有相同的发票记录 InvoiceDate .
我需要更新 Invoices 表基于 InvoiceNumber 以及 InvoiceDate .
最好是把这两列连接起来,还是我现在用的是 InvoiceDateWhere 主要条款 Invoices table真的很大,我想哪里的过滤器更好。每个服务器将只有一个记录 InvoiceNumber 以及 InvoiceDate 但我在想,只过滤那个日期,然后加入发票号和update语句,会更有效。
更好的方法是什么?

igetnqfo

igetnqfo1#

检查这里是一个连接比一个在哪里快?
所以应该没什么区别。不同之处在于如何编写查询以及如何索引表。

brjng4g3

brjng4g32#

一般来说,join子句和where子句之间没有太大的区别。
如果您想使用最佳实践,那么我建议您使用公共表表达式(而不是临时表)
为什么?
因为临时表是在 tempdb 数据库。cte只能在当前查询范围内使用。
cte提高了复杂查询和子查询的可读性和易维护性。您可以在cte中使用join或where子句

相关问题