免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: byebeijing

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

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
发表于 2008-12-11 08:09 |显示全部楼层
原帖由 sybfresher 于 2008-12-10 23:17 发表
就我最近使用Sybase来看,与Oracle相比,ASE有两个比较致命的缺点:
1。很容易造成死锁,导致性能下降
2。数据量大的情况下,性能下降严重
虽然一个系统性能的好坏,与上层应用以及表结构的设计有很大关系, ...


1、你的意思是同样的sql,在Sybase下容易产生死锁,在oracle下不会?能否给出一个例子看一下?
2、数据量大的情况,是指单表的数据量大吗?几千万行的表应该处理检索还好吧,如果超过亿条,似乎应该考虑一下是否该分表了。Oracle表记录数的影响没有实际测试过,最好也给一个实际的例子说明一下。

论坛徽章:
0
发表于 2008-12-12 11:09 |显示全部楼层
关于第一个问题,举个最简单的例子。先看在Oracle中:
session1:
SQL> create table t200 (c1 int);

Table created.

SQL> insert into t200 values(100);

1 row created.

SQL> select * from t200;

        C1
----------
       100

此时没有commit,在另外一个session2中查询:
SQL> select * from t200;

no rows selected

可以看到,虽然session1中做的修改并没有commit,但是session2并没有被阻塞,可以正常查询,只不过查询到是session1修改前的数据。当sessiion1中的事务commit之后,session2中再次运行select * from t200,就会得出:
SQL> select * from t200;

        C1
----------
       100

我们再看看Sybase,同样先在一个事务插入数据:
session1:
1> use test2
2> go
1> create table t200(c1 int)
2> go
1> begin tran
2> go
1> insert into t200 values(100)
2> go
(1 row affected)

此时在session2中查询:

1> use test2
2> go
1> select * from t200
2> go
在这里被挂住了。。。。。。。。。。。。只有等待session1中的事务commit之后才能继续。
这里虽然不是一个死锁的例子,但是我相信Sybase与Oracle的这点差别导致sybase引起死锁的概率比较大,性能也会有所下降。也许各有各的好处,是我理解不够深刻,大家一起探讨。

至于第二个问题,我并没有什么具体数据。每个人心里都会有自己的一杆秤的。

论坛徽章:
0
发表于 2008-12-12 12:50 |显示全部楼层
sybase 早不是 top5 的数据库了

论坛徽章:
0
发表于 2010-08-12 10:15 |显示全部楼层
...

论坛徽章:
0
发表于 2010-08-12 10:47 |显示全部楼层
是top 1嘿嘿

论坛徽章:
0
发表于 2010-08-12 13:12 |显示全部楼层
本帖最后由 zq5143 于 2010-08-12 13:15 编辑

Sybase的产品价格,售后服务比Oracle都有优势~!功能不像Oracle那样All In One,你用多少功能就买多少功能,比如复制有专门的复制服务器,数据分析有专门的IQ。
关于锁的问题,ASE12.5以后也都支持行锁。只要应用程序设计的没问题,应该没问题的。中国铁路售票系统用的就是Sybase的,想象一下你们春运时买火车票时的情景,Sybase的性能也可想而知。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2010-08-12 22:42 |显示全部楼层
关于第一个问题,举个最简单的例子。先看在Oracle中:
session1:
SQL> create table t200 (c1 int);

...
sybfresher 发表于 2008-12-12 11:09



   呵呵。这个例子我觉得举得不恰当,因为你用了Oracle的那个乐观锁来比对Sybase的悲观锁。
你其实应该在Oracle中使用select ... for update来比对,这才有可比性。

论坛徽章:
0
发表于 2010-08-13 10:15 |显示全部楼层
呵呵,楼上,不管用什么锁,你能在sybase中实现我举的oracle的功能吗?

论坛徽章:
33
ChinaUnix元老
日期:2018-07-04 15:10:362015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:1215-16赛季CBA联赛之北京
日期:2016-01-15 10:03:5915-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:4915-16赛季CBA联赛之广夏
日期:2018-07-04 15:33:21C
日期:2016-10-25 16:12:142017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之同曦
日期:2017-02-22 22:41:10
发表于 2010-08-13 11:10 |显示全部楼层
是top 1嘿嘿
hobbylu 发表于 2010-08-12 10:47



    你就意淫吧!

论坛徽章:
0
发表于 2010-08-13 12:32 |显示全部楼层
关于第一个问题,举个最简单的例子。先看在Oracle中:
session1:
SQL> create table t200 (c1 int);

...
sybfresher 发表于 2008-12-12 11:09



    你用的一定是APL的lock scheme吧?用dol不会出现这个问题的,话说dol都出来14年了,为什么不用dol呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP