返回首页

gbase数据、南大通用产品文档:GBase8sSYSFRAGMENTS

更新日期:2024年09月11日

sysfragments 系统目录表存储表和索引的个别分段的分段存储信息和 LOW 方式统计
信息分发。对于每个表分段或索引分段,都存在一行。
sysfragments 表具有以下列。

类型
解释
fragtype
CHAR(1)
指示分段对象类型的代码:
I = 原始索引分段
T = 原始表分段

tabid
INTEGER
表的唯一标识代码
indexname
VARCHAR(128)
索引的名称

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 43 -


类型
解释
colno
INTEGER
TEXT 或 BYTE 列的标识代码或滚动窗口分段数上限
partn
INTEGER
物理存储位置的标识代码
strategy
CHAR(1)
分段分布策略的类型的代码:
R = 循环分段存储策略
E = 基于表达式的分段存储策略
I = IN DBSPACE 子句指定作为分段存储策略一部分
的存储位置
N = 时间间隔(或滚动窗口)分段存储策略
N = 时间间隔分段存储策略
L = 列表分段存储策略
T = 基于表的分段存储策略
H = 表是表层次结构内的子表

location
CHAR(1)
保留供将来使用;对于本地,显示 L
servername
VARCHAR(128)
保留供将来使用
evalpos
INTEGER
分段存储列表中的分段位置。
对于按 INTERVAL 的分段存储,
为指示 exprtext 字
段中信息类型的以下某个值:

-1 = 时间间隔分段的数据库空间列表
-2 = 时间间隔值
-3 = 分段存储键
-4 = 滚动窗口分段

按 LIST 的分段存储也使用值 -3。

exprtext
TEXT
分段存储策略的表达式
对于按 INTERVAL、LIST 或滚动窗口进行的分段存
储,提供与 evalpos 字段值对应的信息。

对于按 INTERVAL 或 LIST 的分段存储,提供与
evalpos 字段值对应的信息。

exprbin
BYTE
表达式的二进制版本

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 44 -


类型
解释
exprarr
BYTE
用于优化范围表达式分段存储策略中的表达式的范
围分区数据
flags
INTEGER
供内部使用
dbspace
VARCHAR(128)
存储此分段的数据库空间的名称
levels
SMALLINT
B 型树索引级别数
npused
FLOAT
对于表分段存储策略:数据页数
对于索引分段存储策略:叶子页数

对于滚动窗口表:nrows 中存储大小限制的单位数

nrows
FLOAT
对于表:分段中的行数。
对于索引:唯一键数。

对于滚动窗口表:清除策略中的存储大小上限。

clust
FLOAT
索引集群的程度;较小的数字对应较大的集群
partition
分段的名称
可匹配存储分段的 GBase
8s 数据库空间的名称,也
可以为不同名称
version
SMALLINT
更新分段统计信息时递增的数字
nupdates
FLOAT
分段的更新数
ndeletes
FLOAT
分段的删除数
ninserts
FLOAT
分段的插入数


每个分段在此表中都有一行。evalpos 和 evaltext 字段包含有关个别分段的信息。
使用按 INTERVAL 或 LIST 的分段存储创建的表和索引具有包含有关分段存储策略信
息的其他行。
strategy 类型 T 用于连接索引。
(这是其分段存储策略与表分段存储相同的分段索引。


对表的分发统计信息最近一次重新计算以来,有关该表的 sysfragments 制表 DML 操
作中 nupdates、ndeletes 和 ninserts 列的信息,请参阅在 SYSDISTRIB系统目录表中具有
相同名称的三个列的描述。
在 GBase
8s 中,
fragtype、
tabid、
indexname 和 evalpos 列上的组合索引允许重复值。

Execute 权限使得用户能够调用例程。通过 EXECUTE 或 CALL 语句,或通过使用表达
式中的函数可能调用例程。
下列用户拥有缺省的 Execute 权限,
这使得他们能够调用例程:


在缺省情况下,任何具有 DBA 权限的用户都可执行数据库中的任何例程。

如果以限定的 CREATE DBA FUNCTION 或 CREATE DBA PROCEDURE 语句
注册该例程,则仅拥有 DBA 权限的用户对那个例程有缺省的 Execute 权限。

如果数据库不符合 ANSI,则用户 public(任何拥有 Connect 数据库权限的用户)
自动地拥有对例程的 Execute 权限,未以 DBA 关键字注册该例程。

在符合 ANSI 的数据库中,过程所有者和任何拥有 DBA 权限的用户都可执行该
例程,而无需收到附加的权限。

授予和撤销 Execute 权限
例程有下列 GRANT 和 REVOKE 要求:

DBA 可将 Execute 权限授予数据库中的任何例程,也可撤销它。

例程的创建者可授予或取消对那个特定的例程的 Execute 权限。通过包括带有
GRANT EXECUTE ON 语句的 AS grantor 子句,创建者丧失授予或撤销的能力。

如果所有者在 GRANT EXECUTE ON 语句中应用了 WITH GRANT 关键字,
则另
一用户可授予 Execute 权限。
对于下列条件,DBA 或例程所有者必须显式地将 Execute 权限授予非 DBA 用户:

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 319 -


以 DBA 关键字子句注册了的例程

在符合 ANSI 的数据库中的例程

不符合 ANSI 的数据库中的例程,但将 NODEFDAC 环境变量设置为 yes。
即使数据库服务器缺省地将权限授予 public,所有者也可限制对例程的 Execute 权限。为
此,请发出 REVOKE EXECUTE ON PUBLIC 语句。DBA 和所有者仍可执行该例程,且
如果使用的话,则可将 Execute 权限授予特定的用户。
使用 COMMUTATOR 和 NEGATOR 函数的 Execute 权限
重要: 如果您显式地授予对 SPL 函数的 Execute 权限,其为 UDR 的换向函数或否定函数,
则在被授予者可使用任意函数之前,您还必须授予对换向函数或否定函数的那种权限。您不可
随同 SPL 过程指定 COMMUTATOR 或 NEGATOR 修饰符。
下列示例演示对于函数的限制授权,以及将它的否定函数限定为一组用户。假设您创建下
列否定函数对:
CREATE FUNCTION greater(y PERCENT, z PERCENT)
RETURNS BOOLEAN
NEGATOR= less(y PERCENT, z PERCENT);
. . .
CREATE FUNCTION less(y PERCENT, z PERCENT)
RETURNS BOOLEAN
NEGATOR= greater(y PERCENT, z PERCENT);
在缺省情况下,任何用户都可执行该函数和否定函数。下列函数仅允许 accounting 执行这
些函数:
REVOKE EXECUTE ON FUNCTION greater FROM PUBLIC;
REVOKE EXECUTE ON FUNCTION less FROM PUBLIC;
GRANT accounting TO mary, jim, ted;
GRANT EXECUTE ON FUNCTION greater TO accounting;
GRANT EXECUTE ON FUNCTION less TO accounting;
用户可能接收附带 WITH GRANT OPTION 授权的 Execute 权限来将 Execute 权限授予
其他用户。如果用户失去对例程的 Execute 权限,则还从通过那个用户授予了 Execute 权
限的那些用户撤销 Execute 权限。
要获取更多信息,请参阅《GBase 8s SQL 指南:语法》 中的 GRANT 和 REVOKE 语句
描述。

另外,有三行被添加至 syscolauth 系统目录表。这些行对应于对 customer 表中的特
定列授予的用户特权,如以下示例所示。
grantor
grantee
tabid
colno
colauth
maryl
nhowe
101
2
-u-
maryl
nhowe
101
3
-u-
maryl
nhowe
101
10
-u-

colauth 列指定对 customer 表授予的列级别特权。此列使用 3 字节模式(如 s
(Select)、u
(Update) 和 r
(References))来标识特权类型。例如:用户 nhowe 具有对
customer 表
(由 tabid 值 101 指示)
的第二个列
(因为 colno 值是 2)
的 Update 特权。