查询性能调优

时间:2011-01-03 11:02:11

标签: oracle performance

我被要求实现一种技术来实现更好的查询性能,这对我来说是非常新的。

技术是:

SELECT tab1.col1
FROM tab1, tab2
WHERE tab1.col1 = tab2.col2
AND tab2.col3 = 'X'
AND tab1.col4 = 'Y';

在上面的查询中,

  1. 我需要创建两个表作为上面使用的表的参考表,例如tab1的tab3和tab2的tab4。
  2. 分别将tab1和tab2的PK值插入tab3和tab4。
  3. 在tab3和tab4中添加一个列,说'condition1',并使用上述查询提取的记录的PK值更新它。
  4. 在查询中使用tab3和tab4,并检查列'condition1'是否为非空。
  5. 编写触发器以在原始表上的任何DML上更新此列。
  6. 这看起来似乎很简单,但如果在具有不同谓词的 N 查询中使用相同的表, 我需要在新表和相应的触发器中添加 N 列数。

    我相信,这是数据的重复和数据库的巨大负担。这不会有助于提高绩效。

    如果能帮助我摆脱实现这一目标的困境,那将是很棒的。

    先谢谢, Savitha

2 个答案:

答案 0 :(得分:2)

您确定正确使用索引吗?

答案 1 :(得分:1)

这种性能调整看起来不错。它看起来像是重建索引系统的愚蠢方式。我会反对它。