Oracle:包含未使用列的表会影响性能?

时间:2012-05-22 08:42:28

标签: performance oracle

我的oracle db中有一个包含100列的表。访问此表的程序不使用此表中的50列。 (即选择查询仅选择相关列而不使用'*')

我的问题是: 如果我只使用我需要的列重新创建相同的表,它将使用我在原始表中使用的相同查询来提高查询性能(请记住,只选择了相关的列)

值得一提的是,该程序每秒使这些查询的次数合理!

P.S。 : 这是我正在进行的现有项目,很久以前也为其他产品设计了表格设计(这就是为什么我们现在有未使用的列)

1 个答案:

答案 0 :(得分:3)

因此,如果额外的列具有不再在表中的数据,则平均行将更小。因此,表可以更小,不仅会占用更少的磁盘空间,而且会在SGA中占用更少的内存空间,而且缓存效率更高。

因此,如果您通过全表扫描访问该表,那么读取该段将更快,但如果您使用基于索引的访问机制,那么唯一的性能改进可能是通过提高获取从缓存中阻止。

<强> [编辑]

SO thread表明“它总是拉出一个元组...... ”。因此,如前所述,您可能会看到一些性能提升,不确定是主要还是次要。