Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
SQL中的效率_Sql - Fatal编程技术网

SQL中的效率

SQL中的效率,sql,Sql,效率更高的是:使用join进行更新,或者使用where进行更新 这是我的密码: 加入: CREATE procedure [dbo].[MyProc] @tvp myType readonly as update tb set pp_update=CONVERT(date,GETDATE(),101) from myTable tb join @tvp t on t.crc32 = tb.pp_crc32 其中: CREATE procedure [dbo].[MyProc] @tvp

效率更高的是:使用
join
进行更新,或者使用
where
进行更新

这是我的密码:

加入

CREATE procedure [dbo].[MyProc]
@tvp myType readonly
as
 update tb
 set pp_update=CONVERT(date,GETDATE(),101)
 from myTable tb
 join @tvp t on t.crc32 = tb.pp_crc32
其中

CREATE procedure [dbo].[MyProc]
@tvp myType readonly
as
 update tb
 set pp_update=CONVERT(date,GETDATE(),101)
 from myTable tb
 where t.crc32 = tb.pp_crc32

你喜欢什么?如果我有两个术语,我可以使用
join

我想你在第二次查询时有一个打字错误。也许你是说

CREATE procedure [dbo].[MyProc]
@tvp myType readonly
as
 update tb
 set pp_update=CONVERT(date,GETDATE(),101)
 from myTable tb, @tvp t
 where t.crc32 = tb.pp_crc32

这两个查询是相同的。唯一的问题是,第一个查询采用
ANSI SQL-92
语法,而另一个查询采用
SQL-89
(旧的)语法。

第二个查询不起作用,因为您尚未确定
t
是什么。你真正知道的唯一方法就是分析它,但我希望两者的性能都是可比的——这是一个长期存在的问题——谢谢,如果我有两个术语,我可以使用第一种语法吗?第一种语法比第二种语法好得多,因为它比第二种语法更清晰。