描述
该语句用来修改 SESSION 状态。
ALTER SESSION 下面对应了多种功能的语句,目前支持四种:
切换当前 SESSION 连接的数据库
修改当前 SESSION 的隔离级别
设置 SESSION 变量,支持同一个语句设置多个变量
设置 QUERY 或 DML 的并行执行能力
格式
ALTER SESSION SET CURRENT_SCHEMA = current_schema;
ALTER SESSION SET ISOLATION_LEVEL = [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE];
ALTER SESSION SET var1_name = var1_value var2_name = var2_value ...;
ALTER SESSION { ENABLE | DISABLE | FORCE } PARALLEL { DML | QUERY } [ PARALLEL integer ];
参数解释
参数 | 描述 |
---|---|
CURRENT_SCHEMA | 指定 SESSION 连接要切换到的数据库名称。 |
ISOLATION_LEVEL | 指定 SESSION 的隔离级别。 |
var1_name = var1_value var2_name = var2_value … | 指定要设置的 SESSION 变量名称和取值。设置多个变量时,变量之间没有逗号分隔。 |
{ ENABLE | DISABLE | FORCE } PARALLEL | 设置 QUERY 或 DML 的并行执行能力:
注意 当指定并行度时,优先级关系如下:通过 hint 指定的并行度 > 通过 |
示例
- 修改 SESSION 的变量值 recyclebin、sql_warnings 和 tx_isolation。
obclient>alter session set recyclebin = 'on' sql_warnings = 'on' tx_isolation = 'read-committed';
Query OK, 0 rows affected (0.01 sec)
- 设置 SESSION 上 QUERY 和 DML 的并行执行。
alter session force parallel query parallel 3;
select * from t1; # 以并发度为 3 并行执行
alter session force parallel query parallel 1;
select * from t1; # 串行执行
alter session force parallel dml parallel 3;
insert into t3 select * from t1; # 开启 PDML 路径,以并发度为 3 并行执行
alter session force parallel dml parallel 1;
insert into t3 select * from t1; # 串行执行