Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 sqlserver表设计_Sql Server 2005 - Fatal编程技术网

Sql server 2005 sqlserver表设计

Sql server 2005 sqlserver表设计,sql-server-2005,Sql Server 2005,我有一个包含大约30列的表。其中10列只能从值列表中填充 现在,这些值存储为varchar,直接存储在表中 我是否应该为这些值创建单独的表,并在ID上使用外键映射这两个表 如果使用ID而不是文字,是否会提高性能?或者它会降低性能,因为当我们查询时,我们必须一直加入?或者这对性能没有影响 我还担心数据的完整性 谢谢。外键是关系完整性工具,而不是性能工具。至少在SQL Server中,创建FK不会创建关联的索引,您应该在所有FK字段上创建索引以缩短查找时间 因此,FKs不会提高性能,但创建索引会:)

我有一个包含大约30列的表。其中10列只能从值列表中填充

现在,这些值存储为
varchar
,直接存储在表中

我是否应该为这些值创建单独的表,并在ID上使用外键映射这两个表

如果使用ID而不是文字,是否会提高性能?或者它会降低性能,因为当我们查询时,我们必须一直加入?或者这对性能没有影响

我还担心数据的完整性


谢谢。

外键是关系完整性工具,而不是性能工具。至少在SQL Server中,创建FK不会创建关联的索引,您应该在所有FK字段上创建索引以缩短查找时间


因此,FKs不会提高性能,但创建索引会:)

您试图解决的问题是什么?你向我们描述了你所拥有的,你也向我们描述了你可能会做什么。但是你没有告诉我们出了什么问题。您对性能感到好奇,但根据我的经验,如果您制定了特定的性能目标,并且开发了整个系统,并且进行了测试,发现系统没有达到该目标,那么性能只是一个问题。+1但使用外键确实提高了数据完整性,坦白地说,这比性能上的一点小小的提高要重要得多…@aF:我考虑使用IDs是为了完整性,也是为了规范化,因为数据不完整。@aF:另一方面,由于连接,我担心性能。我还想知道,当匹配文本数据时,Fks是否可以提高搜索性能。就像@marc_s说的,它们可能会提高性能,但你真的可以使用
索引
使其工作:)Fks+索引是一条可行的路!