ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 2483|回复: 20

[Tips] 许多Synonym真会降低系统性能吗? [复制链接]

注册会员

中级会员

精华贴数
0
技术积分
1551
社区积分
14
注册时间
2004-8-1
论坛徽章:
1
发表于 2006-7-12 22:41:23 |显示全部楼层
同事一直反对我建立Synonym,说会降低Performance,我解释说数据库字典都是Synonym建成的,怎么能影响系统性能呢?

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

精华贴数
0
技术积分
4065
社区积分
43
注册时间
2004-7-22
论坛徽章:
12
2010新春纪念徽章
日期:2010-03-01 11:08:332011新春纪念徽章
日期:2011-01-25 15:41:012011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08
发表于 2006-7-12 22:50:40 |显示全部楼层
生产系统上不建议使用synonym, 对于synonym的查询会增加几次recursive sql, 会对shared pool, library cache, row cache增加负担..

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

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
359
社区积分
29
注册时间
2004-3-20
论坛徽章:
0
发表于 2006-7-12 23:20:23 |显示全部楼层
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

使用道具 举报

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2006-7-12 23:31:54 |显示全部楼层
如果 (hard)  parse 很多,同义词,尤其是 public 同义词 可能会有一定的影响,到底多大倚赖于系统特性。

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

使用道具 举报

注册会员

一般会员

精华贴数
1
技术积分
601
社区积分
2
注册时间
2002-11-4
论坛徽章:
0
发表于 2006-7-13 00:06:23 |显示全部楼层
我们系统基本上都用同义词,所有系统数据库对象都在用户A下,因用到的特性较多,授予比DBA稍低的权限;而用户B则作为客户端登陆用户,授予有限的权限。假如通过用户B调用用户A的对象时,使用A.XXX而不是同义词,个人以为对系统的安全性和可移植性来说是个弊端。至于性能的问题,虽然不至于可忽略不计,但是假如系统出现性能上的瓶颈,那绝不会是因为采用同义词导致。

使用道具 举报

注册会员

游历在深圳和东莞的金鱼

精华贴数
0
技术积分
2776
社区积分
5670
注册时间
2004-8-25
论坛徽章:
8
ITPUB元老
日期:2007-09-07 13:34:44IT宝贝
日期:2009-03-16 13:01:072010新春纪念徽章
日期:2010-03-01 11:08:34
发表于 2006-7-13 09:00:37 |显示全部楼层
哇,这个还真是不知道啊!长见识了,不过还是不太明白

使用道具 举报

版主

版主

精华贴数
11
技术积分
33853
社区积分
3863
注册时间
2001-10-18
论坛徽章:
109
管理团队2006纪念徽章
日期:2006-04-16 22:44:452012新春纪念徽章
日期:2012-01-04 11:49:54灰彻蛋
日期:2011-12-17 23:16:55数据库板块每日发贴之星
日期:2011-03-16 01:01:02月度精华徽章
日期:2011-04-01 02:15:44SQL数据库编程大师
日期:2011-04-13 12:09:01现任管理团队成员
日期:2011-05-07 01:45:08蜘蛛蛋
日期:2011-10-18 13:05:40季节之章:夏
日期:2011-10-21 12:00:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41紫蛋头
日期:2012-01-06 21:49:51ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52
发表于 2006-7-13 09:23:18 |显示全部楼层
最初由 biti_rainy 发布
[B]如果 (hard)  parse 很多,同义词,尤其是 public 同义词 可能会有一定的影响,到底多大倚赖于系统特性。

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



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无操作……

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

使用道具 举报

超级版主

人生就是如此

精华贴数
39
技术积分
113462
社区积分
12356
注册时间
2001-12-12
论坛徽章:
73
ITPUB元老
日期:2005-02-28 12:57:00ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41蜘蛛蛋
日期:2011-07-01 08:38:17蛋疼蛋
日期:2011-05-27 08:50:45现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:皮划艇
日期:2011-04-26 11:24:14咸鸭蛋
日期:2011-11-09 09:55:402011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
发表于 2006-7-13 09:31:03 |显示全部楼层
synonym  的存在的意义自然有它的好处,我就不多说了,上面也说的差不多了

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

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

使用道具 举报

精华贴数
5
技术积分
36141
社区积分
5026
注册时间
2005-3-4
论坛徽章:
111
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512012新春纪念徽章
日期:2012-01-04 11:50:44数据库板块每日发贴之星
日期:2011-08-30 01:01:02灰彻蛋
日期:2011-08-24 18:27:42蜘蛛蛋
日期:2011-07-31 16:12:10紫蛋头
日期:2011-07-09 08:21:37蜘蛛蛋
日期:2011-07-01 08:41:11数据库板块每日发贴之星
日期:2011-06-21 01:01:01现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:乒乓球
日期:2011-05-04 08:52:112011新春纪念徽章
日期:2011-01-04 10:24:58ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
发表于 2006-7-13 09:47:28 |显示全部楼层
学习

使用道具 举报

注册会员

高级会员

精华贴数
0
技术积分
2754
社区积分
1664
注册时间
2004-6-30
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
发表于 2006-7-13 09:51:19 |显示全部楼层
我们的系统也很多同义词,我也曾经考虑过是否会带来一些性能上的负担。
不过这个东西能减低性能,还头一次听到。 谢谢各位大佬

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部