我面临以下问题.我有一张非常大的桌子.此表是以前参与该项目的人员的遗产.该表位于MS SQL Server中.
该表具有以下属性:
正如您可能猜到的,无法对此表运行任何合理的查询.现在人们只在表中插入新记录,但没有人使用它.所以我需要对其进行重组.我计划创建一个新结构,并使用旧表中的数据重新填充新结构.显然,我将实施分区,但这不是唯一要做的事情.
该表最重要的特征之一是那些纯文本字段(即它们不必转换成另一种类型)通常具有频繁重复的值.因此,给定列中实际值的变化范围为5-30个不同的值.这导致了进行规范化的想法:对于每个这样的文本列,我将创建一个附加表,其中包含可能出现在此列中的所有不同值的列表,然后我将在此附加表中创建一个(tinyint)主键,然后将在原始表中使用适当的外键,而不是将这些文本值保留在原始表中.然后我将在这个外键列上放一个索引.以这种方式处理的列数约为100.
它提出了以下问题:
抱歉这么长的文字.
感谢您的评论!
PS我创建了一个关于加入100个表的相关问题; 加入100张桌子
sql sql-server normalization sql-server-2008 database-normalization