分析中包含未使用的列十分常见。不需要但仍选择的列会显著影响性能。本主题介绍如何通过删除不需要的任何列来提高性能。
识别未使用的列
年
)时,会通过以下方式影响性能:
下图显示了包含按区域和年列出的客户数的简单报表。
显示的报表是一个显示按区域列出的客户数的图形。您可以看到已排除了年
列。
包含未使用的“年”列的逻辑查询
虽然年
列未显示在视图中,但它仍被选择作为逻辑查询的一部分。
年
列会产生以下影响:
包含未使用的“年”列的物理查询
如果查看物理查询,可以发现性能受影响的区域。
此示例显示基于客户数量聚合规则执行 SELECT count distinct
的情况。在某些情况下,还会影响应用总和聚合规则的报表。在这种情况下,生成的查询还使用分组集。在数据库级别,可能会选择许多行(百万行),然后必须按年
和区域
分组以及按区域
分组。这可能会占用大量不必要的数据库资源。
删除未使用的列
删除年
列,并分析对生成的逻辑查询和物理查询的影响。
通过查看非高效报表的分析,以及在第一个实例中直接删除多余的未使用列,可以发现性能显著提高。生成的物理查询复杂性降低了,并且返回的记录减少,因此需要处理的量随之减少。