【发布时间】:2017-01-13 20:37:10
【问题描述】:
我正在使用 Oracle 数据库,在某些情况下,我们会查询表中的所有行(选择少数但不是所有列名)(在某些情况下,会在表上创建视图)。我想提高我的选择查询的性能。我在表中使用主键。
例如有一个表:表 (id, a, b, c, d, e, f) 有 100k 行。我查询如下:
SELECT c, d, f FROM Table;
我曾尝试使用 MATERIALIZED VIEWS,但实际上几乎没有发现性能提升。
我考虑过使用 PARTITIONS,但后来我认为我正在扫描所有行(但不是所有列),那么在这种情况下分区会有所帮助吗?
【问题讨论】:
-
如果您只选择大量行,那么瓶颈几乎肯定是数据库和从中读取数据的应用程序之间的网络。但是为什么你会经常从一个表中选择所有的行呢?为什么用户或应用程序经常想要查看 100,000 行?
-
显示 100k 行是对 SQL 客户端的性能测试,而不是对数据库的性能测试。为什么您认为 MVIEW 会使检索 all 行更快?您仍然会检索 100k 行。
标签: sql database oracle oracle11g rdbms