如何调优Oracle SQL查询

时间:2017-04-25 08:22:41

标签: sql database oracle performance optimization

我想问一下,使用同义词或表的实际名称来调优SQL查询的性能是否更好?

1 个答案:

答案 0 :(得分:1)

同义词是实际数据库对象的标签。它们被用作抽象层。主要用于引用其他模式或远程数据库中的对象。使用同义词意味着当我们在不同的环境中移动时,我们不必更改代码。

使用同义词的性能提升是查找。给定查询中的对象名称,优化器将按以下顺序查找匹配对象:

  1. 引用架构中的表或视图(默认为当前架构)
  2. 引用架构中的私有同义词
  3. 公共同义词
  4. 因此,如果我们当前的架构有一个表T23,数据库将在我们的查询中使用它,而不是公共同义词T23引用的表。

    根据数据字典的状态,查找的成本应该完全可以忽略不计,或者可以忽略不计。

    使用同义词不会影响实际查询的性能。也就是说,这两个查询将具有相同的执行配置文件:

    select * from synonym_of_some_table;
    select * from other_user.some_table@remote_db;
    
      

    “即使表中的数据非常大”?

    是的,即使表中的数据非常大。使用同义词不会影响以任何方式检索数据。同义词不像视图,这可以使调整更加困难。