我有一个Oracle数据库视图,其中我可以访问17列和大约15k行(这种增长速度大约为每年700行)。我只需要使用10列。目前我正在寻找方法使我的查询更有效率,因为我的应用程序首先加载了大约7.5k的条目。我知道我只能加载让我们说1k条目,这将是加快加载过程的一种方法;但是,用户通常需要查询超过最初加载的1k条目,我不想让他们等待第二次加载数据到应用程序。
所以我想我的主要问题是,当我查询Oracle视图时,我应该查询并只对数据库执行*查询或选择特定列?我知道最佳实践只会查询您需要的列;但是,我从性能的角度来看这个问题,通过查询我需要的10个特定列而不是查询视图,我会看到显着的性能提升吗?
答案 0 :(得分:2)
正如@AndyLester所说,唯一可以确定的方法就是试试看。有理由期望指定所需的实际列集将更快。问题在于差异是否会显着?#34;这是你能告诉我们的事情。
有几个理由期待性能改进
varchar2(10)
列,并且您不需要的列包含一些varchar2(1000)
列,则可能会消除绝大多数网络流量和消耗的RAM客户端。如果您在选择一堆char(1)
列时只排除了几个clob
列,则减少量可能很小。由于指定列列表没有任何缺点,因此无论性能改进的大小如何,我强烈建议这样做。但是,如果您真的关心性能,那么您可能希望更全面地考虑性能(例如,检查您的流程中实际花费的时间)。