ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle数据库管理 » 许多Synonym真会降低系统性能吗?


您有 2 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...
  • 来自: 公共消息 标题: ITPUB邮箱已经恢复 内容: ITPUB邮箱用户请注意,邮箱现在已经恢复 web访问地址 http://emai ...

    标题: [Tips] 许多Synonym真会降低系统性能吗?
    离线 图书管理员
    中级会员



    精华贴数 0
    个人空间 0
    技术积分 1389 (1546)
    社区积分 14 (11073)
    注册日期 2004-8-1
    论坛徽章:1
          
          

    发表于 2006-7-12 22:41 
    许多Synonym真会降低系统性能吗?

    同事一直反对我建立Synonym,说会降低Performance,我解释说数据库字典都是Synonym建成的,怎么能影响系统性能呢?

    大家说说倒底会不会影响?


    只看该作者    顶部
    离线 jametong



    精华贴数 0
    个人空间 0
    技术积分 3757 (468)
    社区积分 43 (6467)
    注册日期 2004-7-22
    论坛徽章:7
    管理团队成员2010新春纪念徽章    
          

    发表于 2006-7-12 22:50 
    生产系统上不建议使用synonym, 对于synonym的查询会增加几次recursive sql, 会对shared pool, library cache, row cache增加负担..

    Oracle的数据字典的内部处理是不会使用synonym的, 他创建这些synonym给我们DBA使用, 只是为了我们的方便, 另外这些数据字典视图的查询也不会很频繁..


    __________________
    Work@hangzhou
    jametong at gmail dot com
    http://www.dbthink.com
    订阅到GoogleReader
    订阅我的Blog
    只看该作者    顶部
    离线 samchen
    中级会员



    精华贴数 0
    个人空间 0
    技术积分 359 (6477)
    社区积分 29 (7826)
    注册日期 2004-3-20
    论坛徽章:0
          
          

    发表于 2006-7-12 23:20 
    It's true that using synonyms can impact system performance. But the question is how much, which I think varies depending on the front end applications.

    In our production system, the performance is mainly determined by I/O and there are lots of synonyms used. They help developers re-use their codes.

    Sam


    只看该作者    顶部
    在线/呼叫 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112692 (4)
    社区积分 12111 (165)
    注册日期 2001-12-12
    论坛徽章:55
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章
    管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

    发表于 2006-7-12 23:31 
    如果 (hard)  parse 很多,同义词,尤其是 public 同义词 可能会有一定的影响,到底多大倚赖于系统特性。

    因为对于对象的搜索顺序:  私有对象--- > 私有同义词---->  公有同义词


    __________________
    只看该作者    顶部
    离线 hyee
    一般会员



    精华贴数 1
    个人空间 0
    技术积分 498 (4699)
    社区积分 2 (29728)
    注册日期 2002-11-4
    论坛徽章:0
          
          

    发表于 2006-7-13 00:06 
    我们系统基本上都用同义词,所有系统数据库对象都在用户A下,因用到的特性较多,授予比DBA稍低的权限;而用户B则作为客户端登陆用户,授予有限的权限。假如通过用户B调用用户A的对象时,使用A.XXX而不是同义词,个人以为对系统的安全性和可移植性来说是个弊端。至于性能的问题,虽然不至于可忽略不计,但是假如系统出现性能上的瓶颈,那绝不会是因为采用同义词导致。


    只看该作者    顶部
    离线 andyxu
    游历在深圳和东莞的金鱼


    精华贴数 0
    个人空间 1137
    技术积分 2769 (689)
    社区积分 5658 (352)
    注册日期 2004-8-25
    论坛徽章:8
    ITPUB元老2010新春纪念徽章IT宝贝   
          

    发表于 2006-7-13 09:00 
    哇,这个还真是不知道啊!长见识了,不过还是不太明白


    __________________
    这个ID曾经被盗,谢谢指教。。。
    只看该作者    顶部
    离线 rollingpig
    版主


    精华贴数 6
    个人空间 103
    技术积分 30029 (35)
    社区积分 2425 (671)
    注册日期 2001-10-18
    论坛徽章:42
    现任管理团队成员2006年度最佳技术回答ITPUB北京九华山庄2008年会纪念徽章2010新春纪念徽章生肖徽章2007版:鼠IT宝贝
    生肖徽章2007版:猪     

    发表于 2006-7-13 09:23 


    QUOTE:
    最初由 biti_rainy 发布
    如果 (hard)  parse 很多,同义词,尤其是 public 同义词 可能会有一定的影响,到底多大倚赖于系统特性。

    因为对于对象的搜索顺序:  私有对象--- > 私有同义词---->  公有同义词


    hehe
    关键在于(hard)  parse 的数量,一个涉及良好的系统, hard parse很少的情况下,也就无所谓通过什么形式(synonym / 直接spicalfy object.)去知道真正的OBJECT了……


    不过,出于程序移植的方便,很多时候会不把owner的名字写在object前面了。不然的话,如果有时候需要把整个Application object移到其他database, 就必须使用特定的用户名,很是局限……

    另一方面,有时候出于安全的考虑,可能不会直接用object的owner 来连接database,而是使用不同的权限的user 来连接DB.比如说,有一些程序可以使用只需query某个table,那么,它只需用到具有query这几个table权限的用户来连接。而另一个程序需要所有DML权限,那么,我们会给他一个具有更多权限的用户。有时候,可能Object的Owner 完全不会拿来给应用连接,以避免DDL无操作……

    为了满足以上两个要求,同义词是无可避免的……


    __________________

    ITPUB虎年超级宝贝投票,请投我的小孩一票,谢谢

    欢迎访问乐恒的空间
    9/12隆重推出周岁照

    提问的智慧 for Oracle[展开版]
    提问的智慧Oracle版
    0。尝试在google,论坛,metalink,online document里搜索。
    1。写清楚你的执行log,报错信息,写清楚DB version , OS
    2。Instance 方面的问题,请贴出alertlog
    3。network的问题,贴出server的listener.ora , sqlnet.ora 并运行lsnrctl service, 贴出client的tnsnames.ora , sqlnet.ora ,并运行tnsping
    4。DB总体性能问题,请于peak time做statspack,并上传statspack report。同时附上CPU/MEM配置,以及CPU IDLE/free menory的情况
    5。SQL性能问题,列出当前SQL,以及PLAN。同时应提供表结构,index情况,Table的record数。CBO/RBO,table是否analyze等信息。
    6。确保你的问题是Oracle相关。
    欢迎访问乐恒的空间
    只看该作者    顶部
    在线/呼叫 biti_rainy
    人生就是如此



    精华贴数 39
    个人空间 0
    技术积分 112692 (4)
    社区积分 12111 (165)
    注册日期 2001-12-12
    论坛徽章:55
    现任管理团队成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章
    管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

    发表于 2006-7-13 09:31 
    synonym  的存在的意义自然有它的好处,我就不多说了,上面也说的差不多了

    关于 synonym 引出性能问题我至今只听说过一例

    尤其同义词是否要是public 的同义词,同义词有其方便的地方,于  parse 时候的影响,我不清楚对于使用 view 哪个会小一点。  当然,view 的弊端就是原始表结构发生变化的时候可能无法适应变化。


    __________________
    只看该作者    顶部
    离线 lfree


    精华贴数 5
    个人空间 57
    技术积分 31726 (33)
    社区积分 3707 (489)
    注册日期 2005-3-4
    论坛徽章:90
    现任管理团队成员2010年世界杯参赛球队:英格兰2010新春纪念徽章2010年世界杯参赛球队:澳大利亚  
          

    发表于 2006-7-13 09:47 
    学习


    __________________
    好好学习,天天向上!
    只看该作者    顶部
    离线 xiaohou
    高级会员



    精华贴数 0
    个人空间 0
    技术积分 2754 (698)
    社区积分 1664 (865)
    注册日期 2004-6-30
    论坛徽章:2
    会员2006贡献徽章授权会员    
          

    发表于 2006-7-13 09:51 
    我们的系统也很多同义词,我也曾经考虑过是否会带来一些性能上的负担。
    不过这个东西能减低性能,还头一次听到。 谢谢各位大佬


    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们