我想问一下,使用同义词或表的实际名称来调优SQL查询的性能是否更好?
答案 0 :(得分:1)
同义词是实际数据库对象的标签。它们被用作抽象层。主要用于引用其他模式或远程数据库中的对象。使用同义词意味着当我们在不同的环境中移动时,我们不必更改代码。
使用同义词的性能提升是查找。给定查询中的对象名称,优化器将按以下顺序查找匹配对象:
因此,如果我们当前的架构有一个表T23
,数据库将在我们的查询中使用它,而不是公共同义词T23
引用的表。
根据数据字典的状态,查找的成本应该完全可以忽略不计,或者可以忽略不计。
使用同义词不会影响实际查询的性能。也就是说,这两个查询将具有相同的执行配置文件:
select * from synonym_of_some_table;
select * from other_user.some_table@remote_db;
“即使表中的数据非常大”?
是的,即使表中的数据非常大。使用同义词不会影响以任何方式检索数据。同义词不像视图,这可以使调整更加困难。