关于事务在隔离级别为0级上的运行问题.

magicsnake 2004-10-29 05:32:53
我分别启动了两个 SQL Advantage
每个SQL Advantage 的session1中都使用语句
set transaction isolation level 0
将隔离级别置为0级

在第一个SQL Advantage中自行了以下两条语句
begin transaction;
insert into news_type(typename) values('test');

然后在第二个SQL Advantage中自行了以下一条语句
select * from news_type;
结果报错:
The optimizer could not find a unique index which it could use to perform an isolation level 0 scan on table 'news_type'.

为什么在隔离级别0上,连脏数据都不给我读取??
我试验的结果与这个地方的结果大不一样
http://www.chinaunix.net/jh/21/15753.html

我发觉,二个SQL Advantage一开始马上都更改级别为0后,对我上次修改的表进行select操作都会出现以上错误.

有那位高人帮忙指点一下是什么原因??
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicsnake 2004-11-03
  • 打赏
  • 举报
回复
我再到!!
我换了另一台服务器,就完全没有问题了!!!
即使没有索引也可以!!!

是不是sybase的配置有问题啊,但我们都是默认安装的啊,两个的区别就是连接数不一样
hobbylu 2004-11-03
  • 打赏
  • 举报
回复
我们的存储过程用isolation level 0很好啊,也没有出这个问题
magicsnake 2004-11-03
  • 打赏
  • 举报
回复
晕倒!在sybase中事务操作与一致性检查能力跟Oracle差别还真大.

那么就意味着我所有在事务中需要更新的表都要键索引了......
其实我的许多表都没有必要键索引的.

等我再去试一下,OK了就给分
hobbylu 2004-11-03
  • 打赏
  • 举报
回复
你在上面建立一个唯一索引就可以避免这个问题
magicsnake 2004-11-03
  • 打赏
  • 举报
回复
to hobbylu(东方一剑) :

thanks,但是您带来的解释似乎不能说明我上面的问题.
在Level 0上所有情况都是Allowed,那么就应该允许我读取数据才对,但为什么会报错?
请您再详细解释一下好么?
hobbylu 2004-11-02
  • 打赏
  • 举报
回复
Dirty Reads Nonrepeatable
Reads
Phantom
Reads
Level 0 Allowed Allowed Allowed
Level 1 Prevented Allowed Allowed
Level 2 Prevented Prevented Allowed
Level 3 Prevented Prevented Prevented
magicsnake 2004-11-01
  • 打赏
  • 举报
回复
顶一下
magicsnake 2004-11-01
  • 打赏
  • 举报
回复
这里似乎没什么人气?
magicsnake 2004-10-29
  • 打赏
  • 举报
回复
另外,新建的表也不行

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧