【发布时间】:2011-09-27 18:17:46
【问题描述】:
我对正在更新的表有一些约束(默认列的值)。更新真的很慢,不知道是不是约束问题?
有问题的约束是:
ALTER TABLE [dbo].[OrderCustomers] ADD CONSTRAINT [DF_OrderCustomers_AmountTotal] DEFAULT ((0.00)) FOR [AmountTotal]
更新语句只是更改了几列,其中之一是上面约束中的列和其他一些没有 FK 的列。
仅供参考:我禁用了所有触发器以隔离问题。
【问题讨论】:
-
您能否提供一些有关约束定义以及更新语句本身的详细信息。
-
SQL 性能就像天气一样——涉及大约十亿个因素,如果没有大量信息,就不可能给出任何见解。你基本上是在问“这里会因为风而热吗?”
-
列的默认值?不太可能,除非该默认值的计算成本很高。我们能看到约束吗?
-
默认值不是约束。
-
@Larry Lustig:值得商榷。当没有提供值时,它将值限制为 NOT NULL 例如 SomeCol int NOT NULL CONSTRAINT DF_Table_SomeCol DEFAULT 0
标签: sql sql-server constraints