sqlsever2008  有select * from a with NOLOCK
可以查看未提交到磁盘的 记录  (还在内存里的)1 mysql有没有类似的表达
2 oracle有吗? 

解决方案 »

  1.   

    sqlsever 
    一个窗口
    set Transaction
    insert 一条数据
    这个事务还没有结束(end transaction),  还没有提交
    另外一个窗口
    select * from a with NOLOCK
    可以发现那个insert的数据。。
    相同的操作可以在mysql 或者oracle实现吗 ? (2个窗口哦,1个窗口事务咩有结束但有新数据插入, 另外一个窗口with NOLOCK可以发现那个insert的数据)
      

  2.   

    相同的操作可以在mysql 或者oracle实现吗 ?设置不同的事务隔离级别,允许脏读就行了。
      

  3.   

    mysql> start transaction;
    Query OK, 0 rows affected (0.00 sec)mysql> insert into tt(name) values('aaaa');
    Query OK, 1 row affected (0.01 sec)mysql> select * from tt;
    +----+----------+
    | id | name     |
    +----+----------+
    |  1 | coolwind |
    |  2 | ??     |
    |  3 | coolwind |
    |  4 | aaa      |
    |  5 | aaaa     |
    +----+----------+
    5 rows in set (0.00 sec)# 另外一个mysql客户端,改变事务提交级别为'READ-UNCOMMITTED'mysql> set session tx_isolation='READ-UNCOMMITTED';
    Query OK, 0 rows affected (0.00 sec)mysql> select * from tt;
    +----+----------+
    | id | name     |
    +----+----------+
    |  1 | coolwind |
    |  2 | ??       |
    |  3 | coolwind |
    |  4 | aaa      |
    |  5 | aaaa     |
    +----+----------+
    5 rows in set (0.00 sec)
      

  4.   

    sqlserver 能在job 脚本经典使用
    insert into  select   from a(WITH NOLOCK) 避免锁
    update                         a(WITH NOLOCK) 避免锁
    按照楼上的想法,只能用set session tx_isolation='READ-UNCOMMITTED';
    我还是问有没有类似简单的用法 ,我的是shell脚本, 担心在shell里set session tx_isolation='READ-UNCOMMITTED';支持不是很好