2009-08-29 67 views

回答

4

我的猜测是你说的是外键。这也被称为参照完整性,并且是constraint中的一种。外键不是唯一的约束 - 您也可以具有唯一性和检查约束。无论如何,insert s的引用完整性稍微慢一点,而select s的引用完整性也不会更快。

原因是它必须检查insert ed值以确保它们存在于另一个表中。

如果您想提高select查询的性能,您希望将索引放置在要加入和过滤的列上。然而,指数的确有一定的成本,因为它们减缓了inserts,updates和deletes,因为每当表格变化时索引都必须更新。

所以,如果你的表是高容量insert/update,请不要添加太多索引。如果您的餐桌主要是select,请尽可能使用索引。 Database Engine Tuning Advisor可以帮助您为一些最常见的查询定义这些索引。

确保您(在SSMS 按Ctrl +大号)运行您的查询时,这样你可以看到SQL Server正在做使用查询执行计划。您希望尽可能多的,因为这意味着它能够最有效地使用索引!

3

如果定义了表关系,SQL不会更快。

索引提高性能; 引用完整性(表关系)根据业务需求确保数据质量。

+1

+1并且通常数据完整性(RI强制执行)比纯粹的速度更重要!如果我给你一个非常快的错误答案,这有什么好处? – 2009-08-29 21:37:21