GBase8s 采用全局管理的封锁机制,在共享内存中分配一块内存集中标记锁的使用情况,在每个锁结构中保存锁的拥有者、锁定的对象(是表、记录、还是行)、锁的类型等。 在 GBase8s中每个锁占用 128 Byte。
数据库级锁(Database-Ievel Locks)
在我们通过 CONNECT DATABASE 或者 CREATE DATABASE 语句访问数据库时,系统都将自动在该数据库上加上一个共享(S)锁,这样可以防止其他用户删除数据库或 者在该数据库上加排它(X)锁。
表级锁(Table-Ievel Locks)
提供两种模式表级锁:EXCLUSIVE MODE 和SHARE MODE。你可以锁整个表。 SHARED锁防止表中数据更新。gbase8s Universal Server 通过设置隔离级别实现更大程度并发数据保护。 表级EXCLUSIVE锁防止对同个表的并发使用。因此,如果其他许多程序要使用该表时,系统性能会受到严重影响。类
似数据库级EXCLUSIVE锁,表级EXCLUSIVE锁常用在非高峰时期要改变大量数据时。通过UNLOCK TABLE table name 解除锁。当存在事务时,事务结束时解除锁。
页级锁(Page Locks)
GBase8s 物理上把多行记录存放在数据页(Page)上,页级锁指锁的对象是一个数据 页,当采用页级锁访问记录时,GBase8s 会自动对访问的数据页进行加锁。当按物理顺序 访问和更新多条记录时,使用页级锁的效率较高。