免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: byebeijing
打印 上一主题 下一主题

sybase 的应用到底在哪里?? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2010-08-16 12:41 |只看该作者
不是SYBASE慢,而是编的应用程序有问题?大多数在SYBASE上的应用都有跳不出这个怪圈!不明白为什么?
WFCJZ 发表于 2008-12-08 15:22



    同意,可能因为整体成本低,使用的服务器,盘阵,开发人员素质都要差一个档次,我们就有较深的体会,同样跑sybase,在相同配置的IBM和SUN上,AIX 5.2的稳定性和维护成本真的明显优sloaris 10,但我们用SUN的东西最多,哎......

论坛徽章:
0
32 [报告]
发表于 2010-08-16 12:44 |只看该作者
又看了一遍你之前的例子,我认为就是Read Uncommitted,O和S两个厂商在对隔离级别为0时对事物采取 ...
D_D_D_D 发表于 2010-08-16 12:34



    你亲自去试一下,你会发现的确是不一样的 , Oracle并不是赃读。   我特意查了一下,现在MS SQL Server也有了类似“快照”的隔离级别, 而ASE仍然没有。

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
33 [报告]
发表于 2010-08-16 13:07 |只看该作者
回复 32# sybfresher


    因为oracle有redo和undo两种日志,而sybase仅有一种单线的日志序列。

论坛徽章:
0
34 [报告]
发表于 2010-08-16 13:18 |只看该作者
Datarows类型的表可以不会出现我举的那个insert挂住的例子,但是,如果session1是对某些行数据进 ...
sybfresher 发表于 2010-08-14 16:19



    你说应该是isolation level 1 (read committed)下sybase和oracle的不同表现吧,一个update在一个row,另外一个scan到这个row上,sybase会block这个scan,等待到update完成。oracle对这个scan会返回update前的内容,因为他们的mvcc技术可以找到修改前的数据,可能是通过cache或者log来实现的,所以不会block

论坛徽章:
0
35 [报告]
发表于 2010-08-17 16:49 |只看该作者
本帖最后由 xjtuhuth 于 2010-08-17 16:53 编辑

回复 34# shakeone


    ASE 提供了readpast locking (read uncommited), 这样的话session1的update不会阻塞session2的select, 只是session 2的select skip all rows that have exclusive locks on them(脏读):

session1:
1> begin tran
2> update test set col1=1
3> go
(1 row affected)
1>


session 2:
1> select * from test readpast
2> go
col1
-----------

(0 rows affected)

论坛徽章:
0
36 [报告]
发表于 2010-08-17 17:15 |只看该作者
回复 32# sybfresher


    IQ里有 MVCC

论坛徽章:
0
37 [报告]
发表于 2010-08-17 18:01 |只看该作者
回复  shakeone


    ASE 提供了readpast locking (read uncommited), 这样的话session1的update不会 ...
xjtuhuth 发表于 2010-08-17 16:49



    恩,我知道,但sybfresher意思应该是read committed的情况下的表现

论坛徽章:
0
38 [报告]
发表于 2010-08-17 18:34 |只看该作者
本帖最后由 xjtuhuth 于 2010-08-17 18:47 编辑

回复 37# shakeone


    我有些疑问:为什么datarow的lock schema可以避免insert的情况?如果没有MVCC的话update阻塞的情况就不可能解决么?既然IQ都有MVCC,ASE为什么不实现呢?

论坛徽章:
0
39 [报告]
发表于 2010-08-17 20:31 |只看该作者
本帖最后由 shakeone 于 2010-08-17 20:43 编辑

回复 38# xjtuhuth


insert的问题:apl属于all page locking,所以这个page被加上了事务级别的互斥锁,就是说等这个事务结束这个page才能被别的事务加上锁。如果是dol的话,insert会产生一个新的row,对应有一个新的row id,所以datarows locking会锁住这个row id,对其他row没有任何影响,所以不会有apl有的问题。
另外说一句,如果session 2是isolation level 3, insert也会block这个scan,因为level 3防止幻影行的出现。

update的“问题”可以说是个问题,也可以说不是,因为sybase ase是严格按照sql标准的isolation level来实现的,所以阻止别的事务读一个正在更新的数据是符合标准的,如果要改成那种返回更新前的数据或者是脏数据的话,ase的投行大客户们一定会给我们发priority 80以上的change request的。所以这个被认为不是问题,也就没有加入mvcc的必要了。

话说mvcc这个项目应该早就做了,本来是打算用到cluster里面的,后来不知道印度的同事们移植进去了没有。

论坛徽章:
0
40 [报告]
发表于 2010-08-18 12:10 |只看该作者
回复 39# shakeone


    个人觉得可以把MVCC加进ASE, 默认是disable的,如果要用的话可以打开。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP