暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE 8s ESQLC-数据类型-智能大对象-描述结构-ifx_lo_create_spec_t

Dr.王 2022-10-27
396


GBase8s ESQL/C的Ifx_lo_t 数据类型支持SQL数据类型BLOB和CLOB

 

访问智能大对象,需要三种数据结构的配合。

1. 智能大对象的描述结构, ifx_lo_create_spec_t

2. 智能大对象指针结构, ifx_lo_t

3. 智能大对象描述符

 

Ifx_lo_create_spec_t是一个ESQL/C内部数据结构,没有公布其内部成员,但是提供了一系列函数来访问其内部成员。

 

Ifx_lo_create_spec_t保存了如下存储信息:

1. 智能大对象的磁盘存储信息

2. 创建时间。

 

智能大对象的磁盘存储信息:

数据库服务器根据磁盘存储信息,更高效的保存智能大对象。

磁盘存储信息

描述

ESQL/C函数

预估的智能大对象的大小,单位为字节数

预估的智能大对象的大小,单位为字节数,数据库服务器根据该值,来确定保存智能大对象需要的扩展(extents)数量。如果该值设定的不正确,并不会引发错误的结果。但是,意味着数据库服务器不能使用合适的扩展(extents)来保存智能大对象。

Ifx_lo_specget_estbytes()

Ifx_lo_specset_estbytes()

最大字节数

智能大对象的最大长度。

ifx_lo_specget_maxbytes()

Ifx_lo_specset_maxbytes()

分配扩展(extents)大小

分配扩展(extents)大小的单位是千字节。理想情况下,分配扩展是一个扩展,包含所有的智能大对象的数据。

数据库服务器按照分配扩展大小来分配空间,试图将分配扩展放在通过一个chunck中。如果chunk中没有足够大的空间,数据库服务器将占用多个扩展。

Ifx_lo_specget_extsz()

Ifx_lo_specset_extsz()

sbspace的名称

容纳智能大对象的sbspace的名称。最长18字节,并以空字符结尾。

Ifx_lo_specget_sbspace()

Ifx_lo_specset_sbspace()

对于大多数应用来说,建议 直接使用数据服务器指定磁盘存储信息,不要进行修改。

 

创建时间:

在ifx_lo_create_spec_t中保存了创建时间的标记,该标记指示数据库服务器将适当的信息保存到智能大对象上。

类型

创建时间标记

描述

日志相关

LO_LOG

数据库服务器在系统日志中保存智能大对象的变化。

使用LO_LOG标记时,请确认系统日志足够大,能够保存智能大对象的变化信息。

 

LO_NOLOG

不记录与智能大对象相关的操作到系统日志。

最后访问时间

LO_KEEP_LASTACCESS_TIME

数据库服务器保存智能大对象的最后访问时间。

 

LO_NOKEEP_LASTACCESS_TIME

数据库服务器保存智能大对象的最后访问时间。

使用ifx_lo_specset_flags(), ifx_lo_specget_flags()操作上述标记。

 

智能大对象的存储属性是如何获得的?

下面的图中,进行了说明:

1. 优先从数据库服务器的存储属性中获得, 系统设定或配置文件ONCONFIG

2. sbspace的存储特性, 在创建sbspace时指定的。

3. 列级别的存储特性,在执行创建表语句时指定的。

4. 用户定义的存储特性。使用ESQL/C的接口函数指定。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论