Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 2008 如何在ms sql server中处理具有超过16个键的事实表_Sql Server 2008_Data Warehouse - Fatal编程技术网

Sql server 2008 如何在ms sql server中处理具有超过16个键的事实表

Sql server 2008 如何在ms sql server中处理具有超过16个键的事实表,sql-server-2008,data-warehouse,Sql Server 2008,Data Warehouse,我有一个有17个键的事实表。通常,我将主键指定为我的所有尺寸键。MS SQL server 2008在主键或唯一约束中限制为16列。有什么解决办法吗 建立一个计算列作为连接和索引 您只需将超过第15列的列连接起来,并将该额外列设置为第16列 您确定需要十七个维度吗?构建一个计算列作为连接并在此基础上建立索引 您只需将超过第15列的列连接起来,并将该额外列设置为第16列 你确定你需要十七个维度吗?我下载了微软的project real。它们不包括pk中的所有键。有两种情况。如果根据业务规则,所有密

我有一个有17个键的事实表。通常,我将主键指定为我的所有尺寸键。MS SQL server 2008在主键或唯一约束中限制为16列。有什么解决办法吗

建立一个计算列作为连接和索引

您只需将超过第15列的列连接起来,并将该额外列设置为第16列


您确定需要十七个维度吗?

构建一个计算列作为连接并在此基础上建立索引

您只需将超过第15列的列连接起来,并将该额外列设置为第16列


你确定你需要十七个维度吗?

我下载了微软的project real。它们不包括pk中的所有键。有两种情况。如果根据业务规则,所有密钥实际上都是唯一的,那么这就是pk。2-如果表中的键比根据业务规则使其唯一的键多,则对唯一键使用聚集索引,而表中没有主键。

我下载了Microsoft的project real。它们不包括pk中的所有键。有两种情况。如果根据业务规则,所有密钥实际上都是唯一的,那么这就是pk。2-如果表中的键比根据业务规则使其唯一的键多,则对唯一键使用聚集索引,而表中没有主键。

可以合并维度吗?我曾经有过三个维度,每个维度有三个四个值,然后将它们组合成一个“垃圾”维度(Kimball的名字,不是我的),大约有48行。

你能组合维度吗?我曾经有过三个维度,每个维度有三个四个值,然后将它们合并成一个“垃圾”维度(Kimball的名字,不是我的),大约有48行。

为事实表创建一个代理主键。

为事实表创建一个代理主键。

我希望您没有太多事实。有了17个维度,你很快就会遇到聚合问题。

我希望你没有太多的事实。有了17个维度,聚合起来就会遇到问题。

是的,我确实需要17个维度。我对键使用int,连接是如何工作的?如果您关心的只是唯一性而不是排序规则,那么您可以将它们转换为字符串,并将它们与一些分隔符组合。如果你关心排序,我会使用货币类型,并使用乘数。因此,如果第17个值的范围从0到1000000,那么计算值=第16*1000000+17。还有其他更有效的方法,这取决于数据的结构和您愿意投入的工作量。一种更抽象的组合键的方法是使用二进制(x)数据类型——为每个INT键添加四个字节。但它打破了星型模式的范式,将像罪恶一样丑陋。是的,我确实需要17个维度。我对键使用int,连接是如何工作的?如果您关心的只是唯一性而不是排序规则,那么您可以将它们转换为字符串,并将它们与一些分隔符组合。如果你关心排序,我会使用货币类型,并使用乘数。因此,如果第17个值的范围从0到1000000,那么计算值=第16*1000000+17。还有其他更有效的方法,这取决于数据的结构和您愿意投入的工作量。一种更抽象的组合键的方法是使用二进制(x)数据类型——为每个INT键添加四个字节。但它打破了星型模式的范式,将像罪恶一样丑陋。我曾考虑过一个垃圾维度。在这种特殊情况下,它没有多大意义。我考虑过一个垃圾维度。在这个特殊的案例中,它没有多大意义。对于这个特殊的事实,我们没有。它实际上是一个无事实的事实表。唯一的度量是对表的计数。对于这个特定的事实,我们没有。它实际上是一个无事实的事实表。唯一的衡量标准是对表进行计数。