SELECT * FROM GV$OB_PARAMETERS WHERE NAME LIKE ‘freeze%’;
SHOW PARAMETERS LIKE ‘freeze%’
在 sys 租户下执行,为什么上一条会显示所有租户的,而下一条只显示当前租户?
4 个赞
1、GV$OB_PARAMETERS 查全集群所有租户** GV$ 是 OceanBase 全局视图,sys 租户执行会聚合所有节点、所有租户的参数,同时包含下划线开头的内部隐藏参数,所以数据量大、覆盖全部租户。
2、SHOW PARAMETERS 默认仅查当前租户** 不加TENANT限定条件时,只返回登录 sys 租户自身参数,并且自动过滤内部隐藏参数;如需查其他租户,需追加 TENANT=租户名。
3、结果不一致核心两点** ① 查询租户范围:全局视图全量遍历,SHOW 命令默认限定当前租户;② 参数过滤规则:GV 视图展示全部参数(含隐藏),SHOW 只展示对外公开参数。
学到了。
根据文档库中的信息,GV$OB_PARAMETERS 视图和 SHOW PARAMETERS 语句在查询配置项时的行为有所不同。具体如下:
-
GV$OB_PARAMETERS视图:- 在
sys租户下访问GV$OB_PARAMETERS视图时,它将显示所有租户的信息。 - 文档片段中提到:“在
sys租户下访问,显示的是所有租户的信息。” - 这意味着当你在
sys租户下执行SELECT * FROM GV$OB_PARAMETERS WHERE NAME LIKE 'freeze%'时,你会看到所有租户中与freeze%相关的配置项。
- 在
-
SHOW PARAMETERS语句:-
SHOW PARAMETERS语句默认只显示当前租户的配置项。 - 即使是在
sys租户下执行SHOW PARAMETERS LIKE 'freeze%',它也只会显示当前租户(即sys租户)的相关配置项。 - 文档片段中提到:
sys租户和所有用户租户均可以使用SHOW PARAMETERS语句或视图GV$OB_PARAMETERS查询该配置项。但没有明确指出SHOW PARAMETERS会显示所有租户的信息。
-
结论
-
GV$OB_PARAMETERS视图在sys租户下显示所有租户的信息。 -
SHOW PARAMETERS语句在任何租户下都只显示当前租户的信息。
因此,在 sys 租户下执行 SELECT * FROM GV$OB_PARAMETERS WHERE NAME LIKE 'freeze%' 会显示所有租户的信息,而执行 SHOW PARAMETERS LIKE 'freeze%' 只会显示 sys 租户的信息。
依据文档片段:
更多信息请查看:
学习了
一个global, 一个session , 全部与局部的关系。