0
我有一个表[groupmembers]具有三列:SQL Server:如果我总是阅读“聚集”行,聚集非唯一索引可以提高性能吗?
[dn] NVARCHAR(255)
[objectGUID] NVARCHAR(38)
[member] NVARCHAR(255)
数据的源是其中值存储像这样的表:
<dn>,<objectGUID>,<member|member|member|member|member>
我有一个SSIS包,其打出[成员]的每个分隔值,并为每个成员写入新行,但保留相同的[dn]和[objectGUID]。
因此,包含每个[dn]:[objectGUID]对的成员的所有行将始终按顺序写入。每次加载时表格都会被截断。
[dn]和[objectGUID]是代表相同源对象的不同唯一值。我有他们两个,因为两个不同的应用程序将分别使用一个查询[成员]。此外,针对[dn]或[objectGUID]的查询将(几乎)总是返回每个关联的[成员]。
由于[members]将(几乎)总是一起返回,因此在[dn]或[objectGUID]之一上创建聚簇索引是否合理?
我的假设是,如果行被写在一起,与他们相似的值聚集在一起,并读在一起,性能会比非聚集索引更好。
聚集的非唯一索引行为就像具有唯一性的聚集索引.SQL添加了[uniqueifier以使其唯一](https://stackoverflow.com/questions/4332982/do-clustered-indexes-have-to-be-unique ) – TheGameiswar
你的下一部分问题对我来说还不清楚 – TheGameiswar