我有一个newsequentialid()
作为GUID列,我想知道我是否应该将列索引为Clustered或Non-Clustered Index,因为我将使用GUID进行查询。
我也会每周在表格中插入数据。
答案 0 :(得分:0)
通常,是的在表上放置聚集索引。但是哪些列用作聚簇索引? Please see this answer。应该指向正确的方向。特别是GUIDs as PRIMARY KEYs and/or the clustering key的链接。很大程度上取决于您的GUID的性质。用金伯利·特里普的文章来解释:一个不顺序的GUID可能是一个糟糕的选择。例子:
由于这个决定还有更多的内容,我建议你阅读@marc_s提供的完整答案以及Kimberley Tripp的整篇文章。
对于通过SSIS的每周数据插入,请考虑以下步骤:
根据您的具体情况,这可以实现更快的插入,并为您提供一个干净的索引,其统计数据是最新的,碎片为零或接近零。
我意识到您的问题表明您正在使用newsequentialid()
。 While I was reading this article on TechNet此函数生成的值的实际顺序性质需要注意:重新启动Windows后,GUID可以从较低范围重新开始,但仍然是全局唯一的。这会影响您对GUID的下游使用吗?
我想我想知道为什么你发现有必要使用GUID以及为什么在你的情况下这是一个更好的选择,而不是基于整数的SEQUENCE,它会使你的主键聚集索引显着变小。