1 GaussDB单表支持的最大列数?
答:1600,但是随字段类型不同会有变化,建表时不校验字段类型,存入数据时校验,例如bigint类型的字段,每个字段存入8字节数据,1600个字段,需要存入12800个字节,超过一个页面8K,插入时会报错。
2 如何查询分区表分区信息和索引信息?
答:可以使用如下两种方式来确认:
使用pg_get_tabledef()函数查看表的定义,返回信息包含建表SQL、注释、索引、约束等。例如:
gaussdb=# SELECT pg_get_tabledef('table_name');
分区信息可以查询视图pg_partition,索引信息可以查询视图pg_indexes。
3 什么是OID?
答:对象标识符(OID,Object identifiers),是数据库对象的唯一标识。
这个对象可以是数据库、表、索引、视图等等。
4 什么是UDF?
答:用户自定义函数(User Defined Function)。
用户可以根据自己的需求自定义一个函数嵌入到GaussDB中来实现特定的功能,以满足不同的业务场景。
5 GaussDB都有哪些通配符,如何使用?
答:GaussDB数据库支持以下三种通配符:
%:表示任意数量的字符,包括0个,用于LIKE和NOT LIKE语句中。
_:表示一个字符,用于LIKE和 NOT LIKE语句中。
*:表示任意数量字符,包括0个,在部分元命令中使用。
--任意数量字符的通配符使用,查询tbl_test表中以col1字段以ab开头任意多个字符结尾的数据。
gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'ab%';
--一个字符的通配符使用,查询tbl_test表中col1字段以a开头b结尾中间任意单个字符串的数据。
gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'a_b';
--查询所有以tbl开头的表。
gaussdb=# \dt tbl*
6 数据库对象名称的长度是否有限制?
答:在创建数据库对象时命名长度不可超过63个字节。
超过数据库对象名长度限制(63字节)的时候,数据库会将最后一个字节(而不是字符)截断,可能造成出现半个字符的情况。
7 如何查看某张表创建时间?
答:在系统视图PG_TABLES里created字段的取值为表的真实创建时间。
csdn=> SELECT tablename,created FROM pg_tables WHERE tablename = 'table_name';
tablename | created
------------+-----------------------------
table_name | 2025-08-05 20:17:39.2384+08
(1 row)
csdn=>
csdn=>
8 GaussDB数据库能否通过SQL查询内存的使用情况?
答:用户可以通过pg_shared_memory_detail视图查询共享内存的上下文名称、级别、共享内存总大小、可用大小。
示例如下:
csdn=> SELECT * FROM gs_shared_memory_detail;
contextname | level | parent | totalsize | freesize | usedsize
--------------------------------------------------------------+-------+-----------------------------------------+-----------+-----------+----------
ProcessMemory | 0 | | 2088960 | 910656 | 1178304
TrackStmtContext | 1 | ProcessMemory |