【发布时间】:2026-01-17 02:25:01
【问题描述】:
简单的 SQL Server 问题..哪个更快:
- 在您跳过列的位置插入(作为 NULL)
- 在显式插入 NULL 的位置插入?
.... 为什么?
CREATE TABLE dbo.myTable
(
Id int CONSTRAINT PK_myTable_Id PRIMARY KEY,
Name varchar(200) NULL
)
GO
INSERT INTO dbo.myTable(Id) VALUES (1);
INSERT INTO dbo.myTable(Id, Name) VALUES (2, NULL);
GO
请提供参考或基准(这样您的答案就不仅仅是一种意见)。
谢谢。
PS:我可以运行 2 个大型循环,并比较总时间,但它仍然无法告诉我原因..
【问题讨论】:
-
如果您关心优化这些步骤,那么您显然专注于错误的事情。
-
我从来没有考虑过这一点,但差异(如果有的话)太小了,根本不值得花任何精力。
-
race your horses,如果你真的关心这个。
-
“以及为什么”这个问题太宽泛了。我听说过“Sql Server Internals”一书的好消息。
标签: sql sql-server performance query-performance