gaussdb 数据库参数说明【客户端连接缺省设置】【13】

1. 语句行为

SQL 语句执行过程的相关默认参数。

search_path
参数说明:当一个被引用对象没有指定模式时,此参数设置模式搜索顺序。它的值由一个或多个模式名构成,不同的模式名用逗号隔开。

  • 系统表所在的模式 pg_catalog,如果出现在search_path中,它会按指定的顺序被搜索。如果没有出现,则总是排在 search_path 中指定的所有模式前面被搜索。
  • 当前会话如果存放临时表的模式时,可以使用别名 pg_temp 将它列在搜索路径中,如 ‘"$user",public,pg_temp’ 。如果存放临时表的模式没有出现在搜索路径中,则它会作为第一个被搜索的对象,排在 pg_catalog 和 search_path 中所有模式的前面。通过使用别名 pg_temp。系统只会在存放临时表的模式中搜索表、视图、序列对象和数据类型这样的数据库对象,不会在里面搜索函数或运算符这样的数据库对象。
  • 当没有指定一个特定模式而创建一个对象时,它们被放置到以 search_path 为命名的第一个有效模式中。当搜索路径为空时,会报错误。
  • 通过 SQL 函数 current_schemas 可以检测当前搜索路径的有效值。这和检测 search_path 的值不尽相同,因为 current_schemas 显示在 search_path 列表中的项如何被解析的。

取值范围:字符串

说明:

  • 设置为 “$user”,public 时,支持共享数据库(没有用户具有私人模式和所有共享使用 public),用户私有模式和这些功能的组合使用。可以通过改变默认搜索路径来获得其他效果,无论是全局化的还是私有化的。
  • 默认值:"$user",public,$user 表示与当前会话用户名同名的模式名,如果这样的模式不存在,$user 将被忽略。

default_tablespace
参数说明:当 CREATE 命令没有明确声明表空间时,default_tablespace 设置所创建对象(表和索引等)的默认表空间。

  • 值是一个表空间的名字或者一个表明使用当前数据库缺省表空间的空字符串。如果这个数值和任意现存表空间的名字都不匹配,GaussDB 将自动使用当前数据库的缺省表空间。若指定的是一个非默认表空间,用户必须具有它的 CREATE权限,否则尝试创建会失败。
  • 临时表不使用此参数,可以用 temp_tablespaces 代替。
  • 创建数据库时不使用此参数。默认情况下,一个新的数据库从模板数据库继承表空间配置。

取值范围:字符串

  • 默认值:无,表示使用默认表空间。

temp_tablespaces
参数说明:当一个 CREATE 命令没有明确指定一个表空间时,temp_tablespaces 指定要在其中创建临时对象的表空间(临时表和临时表的索引)。在这些表空间中创建临时文件用来做大型数据的排序工作。

  • 其值是一系列表空间名的列表。当列表中超过一个名字时,每次临时对象的创建,GaussDB 在列表中随即的选择位置;除了在事务中,连续创建的临时对象被放置在列表里连续的表空间中。如果选择的列表中的元素是一个空串,GaussDB 将自动将当前的数据库设为默认的表空间。
  • 交互式地设置 temp_tablespaces 后,指定一个不存的表空间是一个错误。如指定一个用户没有 CREATE 权限的表空间。当使用先前的设定值时,不存在的表空间都将被忽略,同样用户缺少 CREATE 权限的表空间也被忽略。特别的,此规则适用于在postgresql.conf中设置默认值。

取值范围:字符串

  • 默认值:无,表示所有的临时对象仅在当前数据库默认的表空间中创建,请参见 default_tablespace。

check_function_bodies
参数说明:设置是否在CREATE FUNCTION 执行过程中进行函数体字符串的合法性验证,禁用验证为了避免产生问题,偶尔会使用,比如避免从转储中恢复函数定义时向前引用的问题。

取值范围:布尔型

  • 默认值:on

default_transaction_isolation
参数说明:设置默认的事务隔离级别。

取值范围:枚举类型

  • read uncommitted 表示事务不可读。
  • read committed 表示事务可读。
  • repeatable read 表示事务可重复读。
  • serializable 表示事务可序列化。
  • 默认值:read committed

default_transaction_read_only
参数说明:设置每个新创建事务是否是只读状态。

取值范围:布尔型

  • 默认值:off

default_transaction_deferrable
参数说明:控制每个新事务的默认延迟状态。只读事务或者那些比序列化更加低的隔离级别的事务除外。

当运行在 serializable 隔离级别时,一个延期只读的 SQL 事务可能在被允许执行之前延迟。一旦开始执行,则不会产生任何的需求来确保可串行的开销。所以序列化代码不会由于并发更新而去被迫使它放弃,这个选项更适合长期运行的只读事务。

取值范围:布尔型

  • 默认值:off

session_replication_role
参数说明:控制当前会话与复制相关的触发器和规则的行为。只有系统管理员可以使用SQL命令设置此参数。

注意:
设置此参数会丢弃之前任何缓存的查询计划。

取值范围:枚举类型

  • origin 表示从当前会话中复制插入、删除、更新等操作。
  • replica 表示从其他地方复制插入、删除、更新等到操作到当前会话。
  • local 表示函数执行复制时会检测当前登录数据库的角色并采取相应的操作。
  • 默认值:origin

vacuum_freeze_min_age
参数说明:指定事务中 VACUUM 操作应该冻结一个表行的最小中断时间。VACUUM 操作在扫描一个表的同时决定是否用 FrozenXID 来代替事务 ID。

取值范围:整型,0~10亿

说明:

  • 尽管随时可以将此参数设为0到10亿之间的任意值,VACUUM 将默认将其有效值范围限制在 autovacuum_freeze_max_age 的50%以内。因此, 强制的自动清理之间不存在不合理的短时间段。
  • 默认值:50 000 000

vacuum_freeze_table_age
参数说明:指定 VACUUM 对全表的扫描冻结元组的时间。如果表的 pg_class.relfrozenxid 字段的值已经达到了参数指定的时间,VACUUM 对全表进行扫描。

取值范围:整型,0~20亿

说明:

  • 尽管随时可以将此参数设为零到20亿之间的值,VACUUM 将默认其有效值范围限制在 autovacuum_freeze_max_age 的95%以内。因此,定期的手动 VACUUM 可以在对此表的反重叠自动清理启动之前运行。
  • 默认值:150 000 000

max_compile_functions
参数说明:设置服务器存储的函数编译结果的最大数量。存储过多的函数和存储过程的编译结果可能占用很大内存。将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。

取值范围:整型,取值必须大于等于1。

  • 默认值:1000

2. 区域和格式化

时间格式设置的相关参数

datestyle
参数说明:设置日期和时间值的显示格式,以及有歧义的输入值的解析规则。

这个变量包含两个独立的部分:输出格式声明(ISO、Postgres、SQL、German)和输入输出的年/月/日顺序(DMY、MDY、YMD)。这两个可以独立设置或者一起设置。关键字 Euro 和 European 等价于 DMY;关键字 US、NonEuro、NonEuropean 等价于 MDY 。

取值范围:字符串

  • 默认值:ISO,MDY,gs_initdb会将这个参数初始化成与 lc_time 一致的值。

intervalstyle
参数说明:设置区间值的显示格式。

取值范围:枚举类型

  • sql_standard 表示产生与 SQL 标准规定匹配的输出。
  • postgres 表示产生与 PostgreSQL 8.4版本相匹配的输出,当 DateStyle 参数被设为 ISO 时。
  • postgres_verbose 表示产生与 PostgreSQL 8.4版本相匹配的输出,当 DateStyle 参数被设为 non_ISO 时。
  • iso_8601 表示产生与在 ISO 8601 中定义的“格式与代号”相匹配的输出。

注意:

  • intervalstyle 参数也影响引起歧义的间隔输入的解释。
  • 默认值:postgres

timezone
参数说明:设置显示和解释时间类型数值时使用的时区。

取值范围:字符串

  • 默认值:GMT,gs_initdb将设置一个与其系统环境一致的时区值。

timezone_abbreviations
参数说明:设置服务器接受的时区缩写值。

取值范围:字符串

  • 默认值:Default,表示通用时区的缩写。但也有其他诸如 ‘Australia’ 和 ‘India’ 等用来定义特定的安装。

extra_float_digits
参数说明:这个参数为浮点数值调整显示的数据位数,浮点类型包括 float4、float8 以及几何数据类型。参数值加在标准的数据位数上(FLT_DIG 或 DBL_DIG 中合适的)。

取值范围:整型,-15~3

说明:

  • 设置为3,表示包括部分关键的数据位。这个功能对转储那些需要精确恢复的浮点数据特别有用。
  • 设置为负数,表示消除不需要的数据位。
  • 默认值:0

client_encoding
参数说明:设置客户端的字符编码类型。

取值范围:字符串

说明:

  • 使用命令 locale -a 查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。
  • 默认情况下,gs_initdb 会根据当前的系统环境初始化此参数,通过 locale 命令可以查看当前的配置环境。
  • 默认值:SQL_ASCII,表示使用数据库的字符编码类型。

下面的参数是由 gs_initdb初始化的,但是可以更改。

lc_messages
参数说明:设置信息显示的语言。

  • 可接受的值是与系统相关的。
  • 在一些系统上,这个区域范畴并不存在,不过仍然允许设置这个变量,只是不会有任何效果。同样,也有可能是所期望的语言的翻译信息不存在。在这种情况下,你仍然能看到英文信息。

取值范围:字符串

说明:

  • 使用命令 locale -a 查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。
  • 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过 locale 命令可以查看当前的配置环境。
  • 默认值:C

lc_monetary
参数说明:设置货币值的显示格式,影响 to_char 之类的函数的输出。可接受的值是系统相关的。

取值范围:字符串

说明:

  • 使用命令 locale -a 查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。
  • 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过 locale 命令可以查看当前的配置环境。
  • 默认值:C

lc_numeric
参数说明:设置数值的显示格式,影响 to_char 之类的函数的输出。可接受的值是系统相关的。

取值范围:字符串

说明:

  • 使用命令 locale -a 查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。
  • 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过 locale 命令可以查看当前的配置环境。
  • 默认值:C

lc_time
参数说明:设置时间和区域的显示格式,影响 to_char 之类的函数的输出。可接受的值是系统相关的。

取值范围:字符串

说明:

  • 使用命令 locale -a 查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。
    +默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过 locale 命令可以查看当前的配置环境。
  • 默认值:C

文本搜索的默认参数配置

default_text_search_config
参数说明:设置全文检索的配置信息。

其被文本搜索函数使用,这些函数并没有一个明确指定的配置。
当与环境相匹配的配置文件确定时,gs_initdb 会选择一个与环境相对应的设置来初始化配置文件。

取值范围:字符串

说明:

  • GaussDB 支持 pg_catalog.english,pg_catalog.simple 两种配置。
  • 默认值:pg_catalog.simple

3. 其他参数

数据库系统默认的库加载参数

dynamic_library_path
参数说明:设置数据查找动态加载的共享库文件的路径。当需要打开一个可以动态装载的模块并且在 CREATE FUNCTION 或 LOAD 命令里面声明的名字没有目录部分时,系统将搜索这个目录以查找声明的文件。

用于 dynamic_library_path 的数值必须是一个冒号分隔(Windows 下是分号分隔)的绝对路径列表。当一个路径名字以特殊变量 $libdir 为开头时,会替换为GaussDB发布提供的模块安装路径。例如:
dynamic_library_path = ‘/usr/local/lib/postgresql:/opt/testgs/lib:$libdir’

取值范围:字符串

说明:

  • 设置为空字符串,表示关闭自动路径搜索。
  • 默认值:$libdir

local_preload_libraries
参数说明:指定一个或多个共享库,它们在开始连接前预先加载。多个加载库之间用逗号分隔,除了双引号,所有的库名都转换为小写。

  • 并非只有系统管理员才能更改此选项,因此只能加载安装的标准库目录下 plugins 子目录中的库文件,数据库管理员有责任确保该目录中的库都是安全的。local_preload_libraries 中指定的项可以明确含有该目录,例如 $libdir/plugins/mylib ;也可以仅指定库的名字,例如 mylib(等价于 $libdir/plugins/mylib)。
  • 与 shared_preload_libraries 不同,在会话开始之前加载模块与在会话中使用到该模块的时候临时加载相比并不具有性能优势。相反,这个特性的目的是为了调试或者测量在特定会话中不明确使用 LOAD 加载的库。例如针对某个用户将该参数设为 ALTER USER SET 来进行调试。
  • 当指定的库未找到时,连接会失败。
  • 每一个支持 GaussDB 的库都有一个“magic block”用于确保兼容性,因此不支持 GaussDB 的库不能通过这个方法加载。

取值范围:字符串

  • 默认值:无

nls_timestamp_format
参数说明:TO_CHAR和TO_TIMESTAMP函数格式参数缺省时,读取该参数的值作为上述函数的默认格式。

取值范围:字符串

  • 默认值:YYYY-MM-DD HH24:MI:SS
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值