Gue*_*est 4 sql-server cross-apply
我正在使用 2 个相同的数据集。但是,一个来自临时表,另一个来自派生表(cross apply运算符)。派生表需要更长的时间来处理,而且它是一个简单的查询。我被告知要避免应用运算符,因为它们使用逐行处理。
我的问题:
apply操作员是否使用逐行处理?apply诸如游标和触发器语句之类的运算符吗?(仅在特定情况下使用)该APPLY运营商在T-SQL语言中的表格操作。作为语言本身,它是声明性的,并不以任何方式指示关系引擎应该使用什么物理实现来检索数据。这意味着输入集和应用函数之间的相关策略不限于嵌套循环。这在很大程度上取决于您应用于输入集的表格函数的类型,因为某些函数支持谓词下推和/或重新排序,而其他函数则不支持。
APPLY 运算符本身并无好坏之分,因此它不是您应该在代码中尽量避免的事情之一。