GBase 8a的一些参数是支持session级设置的,只影响当前连接。但因为连接池的存在,为了避免参数对后续SQL的影响,建议先保存当前值后再修改,用完了再恢复回保存的值。
目录导航
保存当前的值
用@@参数值来读取参数的当前值,然后用set等保存到备份变量里。
gbase> select @@estimate_func_max_len;
+-------------------------+
| @@estimate_func_max_len |
+-------------------------+
| 0 |
+-------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> set @bak=@@estimate_func_max_len;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
修改值
gbase> set estimate_func_max_len=32700;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like 'esti%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| estimate_func_max_len | 32700 |
+-----------------------+-------+
1 row in set (Elapsed: 00:00:00.00)
恢复参数值
gbase> set estimate_func_max_len=@bak;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> show variables like 'esti%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| estimate_func_max_len | 0 |
+-----------------------+-------+
1 row in set (Elapsed: 00:00:00.00)