情况1:我有一个包含30列的表,我在where子句中使用4列进行查询.
情况2:我有一个包含6列的表,我在where子句中使用4列进行查询.
两种情况下的表现有何不同?
例如我有桌子
table A
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10),
g varchar(10),
h varchar(10)
}
SELECT b,c,d
FROM A
WHERE f='foo'
create table B
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10)
}
SELECT b,c,d
FROM B
WHERE f='foo'
Run Code Online (Sandbox Code Playgroud)
A和B表具有相同的结构意味着在条件也相同且列中的列也相同时使用的列数和列数的差异.不同之处在于表B只有一些未使用的列,这些列未在select中使用,在这种情况下,两种查询的性能有何不同?
表变量是在内存中还是在tempdb中创建的?短临时表也一样吗?
像C#,VB.NET这样的所有语言都尝试捕获最终阻塞但是SQL服务器只有尝试并且只捕获为什么不给出最终阻塞是否有任何具体原因?