[英]Is SQL Server 2005 faster when table relationships are defined?
我聽說如果定義了表關系,SQL會更快。
這是真的?
我想知道,或者說它速度較慢。
我的猜測是您在談論外鍵。 這也稱為參照完整性,是一種約束 。 外鍵不是唯一的約束類型-您也可以具有唯一約束和檢查約束。 無論如何,對於insert
,引用完整性會稍慢一些,而對於select
,則根本不會更快。
原因是它必須檢查insert
值以確保它們在另一個表中存在。
如果要提高select
查詢的性能,則希望將索引放在要連接並進行過濾的列上。 但是,索引確實要付出一定的代價,因為它們會降低insert
, update
和delete
速度,因為每次表更改時索引都必須更新。
因此,如果您的表是大量insert
/ update
,請不要添加太多索引。 如果您的表主要select
,則在可能的地方使用索引。 數據庫引擎優化顧問還可以幫助您為一些最常見的查詢定義那些索引。
確保在運行查詢時使用查詢執行計划(SSMS中為Ctrl + L ),以便可以看到SQL Server在做什么。 您需要盡可能多的seek
,因為這意味着它能夠最有效地使用索引!
如果定義了表關系,SQL的速度就不會更快。
索引可以提高性能; 參照完整性 (表關系)可根據業務需求確保數據質量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.