检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
对以上语法格式的解释如下: select_expressions:查询的SQL语句。通过基础SQL命令加INTO子句可以将单行或多列的结果赋值给一个变量(记录、行类型和标量变量列表)。 target :目标变量。可以是一个记录变量、一个行变量或一个有逗号分隔的简单变量和记录/行域列表。
force:表示只要查询中不包含向量化引擎不支持的类型或者表达式,则查询的基表为行存表,强制将查询转换为向量化的执行计划执行计算。在这种情况下,针对不同的查询场景可能出现性能下降。 optimal:表示在force的基础上,由优化器根据查询的复杂度进行选择是否将查询语句转换为向量化的执行计划,尽可能避免转换为向量化的执行计划后出现性能下降。
off表示计算方式不同,需要进行重分布。 计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据
支持,存在差异 MySQL:IN的左操作数只能是位运算或者算术运算或者由括号组成的表达式。 GaussDB:IN的左操作数可以是任意表达式。 ! 支持,存在差异 MySQL:!的操作数只能是单目运算符(不含not)或者括号组成的表达式。 GaussDB:!的操作数可以是任意表达式。 #
ABORT 功能描述 回滚当前事务并且撤销所有当前事务中所做的更改。 作用等同于ROLLBACK,早期SQL使用的是ABORT,现在推荐使用ROLLBACK。 注意事项 在事务外部执行ABORT语句不会影响事务的执行,但会返回一个NOTICE信息。 语法格式 1 ABORT [ WORK
为了帮助用户实现与数据库的交互,ODBC提供执行SQL语句的相关API如表1所示。 表1 相关API说明 功能 API 设置语句属性 SQLSetStmtAttr 为执行SQL语句做准备 SQLPrepare 执行一条准备好的SQL语句 SQLExecute 绑定SQL语句的参数标志和缓冲区
off表示计算方式不同,需要进行重分布。 计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据
内置角色gs_role_directory_create权限的用户可以创建directory对象。 创建用户默认拥有此路径的READ和WRITE操作权限。 目录的默认owner为创建directory的用户。 以下路径禁止创建: 路径含特殊字符。 路径是相对路径。 创建目录时会进行以下合法性校验:
个提示。 与很多语句不同的是,IF EXISTS参数只用于DROP USER MAPPING语句,CREATE USER MAPPING语句使用该参数时会报语法错误。 user_name 该映射的用户名。 CURRENT_USER和USER匹配当前用户的名称。PUBLIC被用来匹配系统中所有现存和未来的用户名。
参数说明 mv_name 要创建的物化视图的名称(可以被模式限定)。 取值范围:字符串,要符合标识符命名规范。 column_name 新物化视图中的一个列名。物化视图支持指定列,指定列需要和后面的查询语句结果的列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。 取值范围:字符串,要符合标识符命名规范。
字符串长度不超过50个字符。 不能包含“|”、 “;”、“&”、“$”、“>”、“<”、“`”、“\”、“!”和换行符。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。 hotpatch_version 参数说明:云服务热补丁版本号信息。 参数类型:字符串
、'TRUE'、true、on、以及所有非0数值。 “假”值的有效文本值是: FALSE、'f'、'false'、'n'、'no'、'0'、0、'FALSE'、false、off。 使用TRUE和FALSE是比较规范的用法(也是SQL兼容的用法)。 示例 显示用字母t和f输出Boolean值。 1 2
short_desc text 参数的简单描述。 extra_desc text 参数的详细描述。 context text 设置参数值的上下文,包括internal、postmaster、sighup、backend、superuser和user。 vartype text 参数类型,包括bo
对复杂SQL语句进行拆分。 对于过于复杂并且不易通过以上方法调整性能的SQL可以考虑拆分的方法,把SQL中某一部分拆分成独立的SQL并把执行结果存入临时表,拆分常见的场景包括但不限于: 作业中多个SQL有同样的子查询,并且子查询数据量较大。 Plan cost计算不准,导致子查询hash
对复杂SQL语句进行拆分 对于过于复杂并且不易通过以上方法调整性能的SQL可以考虑拆分的方法,把SQL中某一部分拆分成独立的SQL并把执行结果存入临时表,拆分常见的场景包括但不限于: 作业中多个SQL有同样的子查询,并且子查询数据量较大。 Plan cost计算不准,导致子查询hash
对复杂SQL语句进行拆分。 对于过于复杂并且不易通过以上方法调整性能的SQL可以考虑拆分的方法,把SQL中某一部分拆分成独立的SQL并把执行结果存入临时表,拆分常见的场景包括但不限于: 作业中多个SQL有同样的子查询,并且子查询数据量较大。 Plan cost计算不准,导致子查询hash
BY语句如果生成了groupagg+sort的plan性能会比较差,可以通过加大work_mem的方法生成hashagg的plan,因为不用排序而提高性能。 尝试将函数替换为case语句。 GaussDB函数调用性能较低,如果出现过多的函数调用导致性能下降,可以根据情况把可下推的函数改成CASE表达式。
BY语句如果生成了groupagg+sort的plan性能会比较差,可以通过加大work_mem的方法生成hashagg的plan,因为不用排序而提高性能。 尝试将函数替换为case语句。 GaussDB函数调用性能较低,如果出现过多的函数调用导致性能下降很多,可以根据情况把可下推函数的函数改成CASE表达式。
序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。 通过序列使某字段成为唯一标识符的方法有两种: 一种是声明字段的类型为序列整型,由数据库在后台自动创建一个对应的Sequence。
分区。使用的哈希算法为GaussDB内置哈希算法,在分区键取值范围不倾斜(no data skew)的场景下,哈希算法在分区之间均匀分布行,使分区大小大致相同。因此哈希分区是实现分区间均匀分布数据的理想方法。哈希分区也是范围分区的一种易于使用的替代方法,尤其是当要分区的数据不是历史数据或没有明显的分区键时,示例如下: