检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
案例:调整查询重写GUC参数rewrite_rule rewrite_rule包含了多个查询重写规则:magicset、uniquecheck、intargetlist、predpush等。下面简要说明一下其中重要的几个规则的使用场景: 案例环境准备 为了便于规则的使用场景演示,需准备建表语句如下
案例:改写SQL消除子查询 现象描述 1 2 3 4 select 1, (select count(*) from normal_date n where n.id = a.id) as GZCS from normal_date a; 此SQL性能较差,查看发现执行计划中存在
GS_ADM_ILMTASKS GS_ADM_ILMTASKS视图反映ADO Task的概要信息,包含Task ID,Task Owner,状态以及时间信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。 表1 GS_ADM_ILMTASKS字段 名称 类型
ADM_TABLES ADM_TABLES视图显示关于数据库下的所有表信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_TABLES字段 名称 类型 描述 owner character
DB_TABLES DB_TABLES视图显示当前用户可访问的所有表的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_TABLES字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character
DB_VIEWS DB_VIEWS视图显示当前用户可访问的所有视图的描述信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_VIEWS字段 名称 类型 描述 owner name 视图的所有者。 view_name name 视图的名称。 text text
PKG_UTIL PKG_UTIL支持的所有接口请参见表1: 表1 PKG_UTIL 接口名称 描述 PKG_UTIL.LOB_READ 读取lob对象的一部分。 PKG_UTIL.LOB_WRITE 将源对象按照指定格式写入到目标对象。 PKG_UTIL.LOB_APPEND 将
java.sql.ResultSetMetaData java.sql.ResultSetMetaData是对ResultSet对象相关信息的具体描述。 表1 对java.sql.ResultSetMetaData的支持情况 方法名 返回值类型 支持JDBC4 getCatalogName
javax.sql.PooledConnection javax.sql.PooledConnection是由连接池创建的连接接口。 表1 对javax.sql.PooledConnection的支持情况 方法名 返回值类型 支持JDBC4 addConnectionEventListener
PQsendQueryParams 功能描述 给服务器提交一个命令和分隔的参数,而不等待结果。 原型 int PQsendQueryParams(PGconn* conn, const char* command, int nParams, const Oid* paramTypes
javax.sql.PooledConnection javax.sql.PooledConnection是由连接池创建的连接接口。 表1 对javax.sql.PooledConnection的支持情况 方法名 返回值类型 支持JDBC4 addConnectionEventListener
libpq包及依赖的库和头文件 从发布包中获取libpq包及依赖的库和头文件,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Libpq.tar.gz文件。使用libpq的前端程序必须包括头文件libpq-fe.h并且必须与libpq库连接。 父主题:
PQsendQuery 功能描述 向服务器提交一个命令而不等待结果。如果查询成功发送则返回1,否则返回0。 原型 int PQsendQuery(PGconn * conn, const char * query); 参数 表1 PQsendQuery参数 关键字 参数说明 conn
PQsendQueryParams 功能描述 给服务器提交一个命令和分隔的参数,而不等待结果。 原型 int PQsendQueryParams(PGconn* conn, const char* command, int nParams, const Oid* paramTypes
使用非初级类型的宿主变量 非初级类型的宿主变量包括数组、typedef、结构体和指针类型的宿主变量。 数组 有两种将数组作为宿主变量的情况。第一种情况是在char[]或者VARCHAR[]中存储一些文本字符串。第二种情况是可在检索多行查询结果时不使用游标。如果不使用数组,则处理多行查询结果时必须使用游标以及
java.sql.ResultSet java.sql.ResultSet是执行结果集接口。 表1 对java.sql.ResultSet的支持情况 方法名 返回值类型 支持JDBC 4 absolute(int row) Boolean Yes afterLast() void
ODBC包及依赖的库和头文件 Linux下的ODBC包 从发布包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Odbc.tar.gz。Linux环境下,开发应用程序要用到unixODBC提供的头文件(sql.h、sqlext.h等)和库libodbc.so
典型应用场景配置 日志诊断场景 ODBC日志分为unixODBC驱动管理器日志和psqlODBC驱动端日志。前者可以用于追溯应用程序API的执行是否成功,后者是底层实现过程中的一些DFX日志,用来帮助定位问题。 unixODBC日志需要在odbcinst.ini文件中配置: 1 2
SQLPrepare 功能描述 准备一个将要进行的SQL语句。 需要注意的是,ODBC发送准备好语句不支持内核复用计划,会导致每次执行都需要重新生成计划,导致CPU占用率高。如果业务对计划复用有需求建议优先使用JDBC作为客户端。 原型 1 2 3 SQLRETURN SQLPrepare
libpq包及依赖的库和头文件 从发布包中获取libpq包及依赖的库和头文件,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Libpq.tar.gz文件。使用libpq的前端程序必须包括头文件libpq-fe.h并且必须与libpq库连接。 父主题: