Sql server 2005 sqlserver表设计
我有一个包含大约30列的表。其中10列只能从值列表中填充 现在,这些值存储为Sql server 2005 sqlserver表设计,sql-server-2005,Sql Server 2005,我有一个包含大约30列的表。其中10列只能从值列表中填充 现在,这些值存储为varchar,直接存储在表中 我是否应该为这些值创建单独的表,并在ID上使用外键映射这两个表 如果使用ID而不是文字,是否会提高性能?或者它会降低性能,因为当我们查询时,我们必须一直加入?或者这对性能没有影响 我还担心数据的完整性 谢谢。外键是关系完整性工具,而不是性能工具。至少在SQL Server中,创建FK不会创建关联的索引,您应该在所有FK字段上创建索引以缩短查找时间 因此,FKs不会提高性能,但创建索引会:)
varchar
,直接存储在表中
我是否应该为这些值创建单独的表,并在ID上使用外键映射这两个表
如果使用ID而不是文字,是否会提高性能?或者它会降低性能,因为当我们查询时,我们必须一直加入?或者这对性能没有影响
我还担心数据的完整性
谢谢。外键是关系完整性工具,而不是性能工具。至少在SQL Server中,创建FK不会创建关联的索引,您应该在所有FK字段上创建索引以缩短查找时间
因此,FKs不会提高性能,但创建索引会:)您试图解决的问题是什么?你向我们描述了你所拥有的,你也向我们描述了你可能会做什么。但是你没有告诉我们出了什么问题。您对性能感到好奇,但根据我的经验,如果您制定了特定的性能目标,并且开发了整个系统,并且进行了测试,发现系统没有达到该目标,那么性能只是一个问题。+1但使用外键确实提高了数据完整性,坦白地说,这比性能上的一点小小的提高要重要得多…@aF:我考虑使用IDs是为了完整性,也是为了规范化,因为数据不完整。@aF:另一方面,由于连接,我担心性能。我还想知道,当匹配文本数据时,Fks是否可以提高搜索性能。就像@marc_s说的,它们可能会提高性能,但你真的可以使用
索引使其工作:)Fks+索引是一条可行的路!