【发布时间】:2011-11-04 07:44:09
【问题描述】:
我正在尝试针对由 6 个表构建的 Oracle 视图优化一些旧版 SQL SP,每个表由相同的字段(一个数字 ID)连接。视图中的一些表有一个索引,它完全是这个 ID 字段,其他的则没有。
如果我只使用该字段在视图中的其余表上创建索引,然后使用该字段作为唯一参数执行实际的选择查询,它会显着提高性能吗?如果有必要,我可以发布 s.proc,因为 SP 中可能存在其他可能无法通过单独索引来解决的缺陷。有问题的查询需要大约 6 秒才能返回 1 行,没有一个表包含大量记录,无论如何也不超过 100,000 条记录。
提前致谢,
斯科特
【问题讨论】:
-
ID字段是索引的第一个字段吗?索引是否聚集?您是从视图中选择所有行,还是根据 ID 选择少量行?
-
ID 字段是所有现有索引中的第一个字段,就像我说的几个表缺少该字段上的索引一样。是不是成群结队了,不知道。在 idx 创建(使用 PL/SQL 开发人员)的任何地方,我都看不到对集群或非集群的引用。根据提供的 ID,查询应该只返回 1 行。
-
Scott,你能提供查询生成的解释计划吗?这将有助于为您提供有关调整查询的更好建议。
-
Scott,如果可以的话,继续发布 SP 代码,它也可能会导致您的一些性能问题。
标签: sql database oracle indexing database-performance