因此SET表会影响性能,因为对于表中插入或更新的每一个新行,Teradata都会检查表中是否已经存在重复的行,如果存在大量记录,这可能是一个严重的问题。但是,我们可以通过在SET表中的任何列上定义唯一约束来提高其性能,例如唯一主索引(UPI(。这有助于我们避免执行重复行检查的额外开销,因为UPI保证不会有重复行。
-
这是否意味着具有UPI/USI的SET表将具有与具有UPI/USI的MULTISET表相同的性能请解释。
-
如果您的表有一个唯一主索引,您应该将其创建为SET表还是MULTISET表?
具有UPI的SET/MULTISET表不会有性能差异,只是插入/选择方面的差异:SET表会忽略重复的行(插入的行数少于选择的行数(,而MULTISET表会抛出错误(在检查唯一性之前会进行重复的行检查(。
但是添加一个USI并不能防止重复的行检查,在将新行插入USI子表之前,必须先将其插入基表以创建其ROWID。