gpt4 book ai didi

indexing - 为什么 SAS 不使用我的索引?

转载 作者:行者123 更新时间:2023-12-04 05:45:54 25 4
gpt4 key购买 nike

我有一个按字段“A”排序的大型 SAS 数据集。我想做一个引用字段“A”和“B”的查询。为了提高性能,我在“B”上创建了一个索引。这会导致一条无用的消息:

INFO: Index B not used.  Sorting into index order may help.

当然,对 B 进行排序会有所帮助。但这不是重点。索引适用于您已经在其他字段上排序的情况。

在类似的查询中,SAS 给出了以下消息:
INFO: Use of index C for WHERE clause optimization canceled.

关于让 SAS 使用我的索引的任何提示?在一种情况下,查询需要 2 小时才能运行,因为 SAS 不使用索引。

最佳答案

如果查询不够有选择性 - 将大部分源记录带到结果中,索引的使用可能无助于性能,最终会使事情变得更糟。这可能就是优化器决定不使用索引的原因。

要强制使用索引,请尝试使用 IDXNAME 数据集选项(可能在两个表上)。
引用 http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000414058.htm .

如果没有看到查询并了解数据的一些特征(至少是输入表的记录数和查询结果的预期大小),很难说出最佳方法。

无论如何,为了获得最佳性能,在连接表时,两个表都需要类似地进行索引,并且所有连接键都需要成为索引的一部分。

关于indexing - 为什么 SAS 不使用我的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10689517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com