索引表之间的数据合并如何工作?
How does a data merge between indexed tables work?
最近我不得不开始使用 SAS 索引 tables。问题是尝试对索引 table 进行排序时,我做不到,除非我删除了索引。我理解这个问题,因为在对索引 table 进行排序时,索引中的 RID 发生变化,SAS 无法再找到该行。
但我不明白为什么合并可以完美地工作,保留索引并更新它。在两个 table 之间的完全外部连接中,行也发生了变化,但 SAS 它能够保留索引。我考虑了一些可能性,比如在进行合并时,因为它们是两个排序的 tables,当插入一行时,它只需要在下面的 RIDS 中加 1。但是我想知道是不是真的这样。
对不起我的解释,说清楚不是我的强项。
感谢您的宝贵时间。
尝试设置
options msglevel = i;
在 运行 您的代码之前 - SAS 然后将在日志中打印诊断消息,准确显示它何时使用和不使用索引,以及创建或删除索引的时间。
如果您想要更具体的答案,请post一些具体的代码。
最近我不得不开始使用 SAS 索引 tables。问题是尝试对索引 table 进行排序时,我做不到,除非我删除了索引。我理解这个问题,因为在对索引 table 进行排序时,索引中的 RID 发生变化,SAS 无法再找到该行。
但我不明白为什么合并可以完美地工作,保留索引并更新它。在两个 table 之间的完全外部连接中,行也发生了变化,但 SAS 它能够保留索引。我考虑了一些可能性,比如在进行合并时,因为它们是两个排序的 tables,当插入一行时,它只需要在下面的 RIDS 中加 1。但是我想知道是不是真的这样。
对不起我的解释,说清楚不是我的强项。
感谢您的宝贵时间。
尝试设置
options msglevel = i;
在 运行 您的代码之前 - SAS 然后将在日志中打印诊断消息,准确显示它何时使用和不使用索引,以及创建或删除索引的时间。
如果您想要更具体的答案,请post一些具体的代码。