我的同事告诉我,任何使用链接服务器的查询都首先将数据从远程服务器传输到运行查询的服务器,然后应用过滤器。例如,如果我有以下查询:
select id, region
from linked_server.mydb.dbo.product
where id = 1
该查询会将远程服务器的产品表中的所有数据带到本地服务器并应用ID=1
。我在 Microsoft 网站上找不到此信息。这是真的?
我的同事告诉我,任何使用链接服务器的查询都首先将数据从远程服务器传输到运行查询的服务器,然后应用过滤器。例如,如果我有以下查询:
select id, region
from linked_server.mydb.dbo.product
where id = 1
该查询会将远程服务器的产品表中的所有数据带到本地服务器并应用ID=1
。我在 Microsoft 网站上找不到此信息。这是真的?
我对使用标量 UDF 的列有一个检查约束。我有一个需要更改 UDF 的要求。据我所知,我需要删除约束,对 UDF 进行更改,然后重新添加约束。在取消约束期间,我担心表中可能会插入坏数据。有没有办法在不删除约束的情况下更改 UDF?如果不是,有没有办法防止坏数据进入表?
我们存储过程中的大多数 select 语句都使用了WITH(NOLOCK)
,我的同事告诉我他们使用它来提高性能。现在,我知道这个提示有助于锁定,但它真的提高了性能吗?我在某处读到我们不应该NOLOCK
在 OLTP 数据库中使用提示,但我看到在我的工作场所正在做相反的事情。在使用提示时,有人可以阐明最佳做法吗NOLOCK
?
我是 SQL Server 的新手。我最近了解到执行顺序是:
From
Where
Group By
Having
Select
Order By
相关子查询和交叉应用在执行顺序中的位置是什么?
我有一个查询,其中我在 select 子句中关联了子查询。没有 where 子句的外部查询返回 10k 行,应用 where 子句后,它返回 50 行。当外部查询有 where 子句时,相关子查询是执行 10k 次还是 50 次?
根据执行的逻辑顺序,它应该只执行 50 次,因为 select 语句是最后执行的语句之一。但是我的朋友说它执行了 10k 次,因为优化器在“From”逻辑执行顺序期间执行了这个。有什么想法吗?