异步命令处理 PQexec函数对普通的同步应用里提交命令已经足够使用。但是它却有几个缺陷,而这些缺陷可能对某些用户很重要: PQexec等待命令结束,而应用可能还有其它的工作要做(比如维护用户界面等),此时并不希望PQexec阻塞应用。 因为客户端应用在等待结果的时候是处于挂起状态的
取消正在处理的查询 客户端应用可以使用本节描述的函数,要求取消一个仍在被服务器处理的命令。 PQgetCancel PQfreeCancel PQcancel 父主题: libpq接口参考
连接参数 表1 连接参数 参数 描述 host 要连接的主机名。如果主机名以斜杠开头,则它声明使用UNIX域套接字通讯而不是TCP/IP通讯;该值就是套接字文件所存储的目录。如果没有声明host,那么默认是与位于/tmp目录(或者安装GaussDB的时候声明的套接字目录)里面的UNIX
基于Psycopg开发 Psycopg是一种用于执行SQL语句的PythonAPI,可以为GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持
开发流程 图1 采用Psycopg2开发应用程序的流程 父主题: 基于Psycopg开发
Psycopg接口参考 Psycopg接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述。 psycopg2.connect() connection.cursor() cursor.execute(query,vars_list) cursor.executemany
SQL调优指南 SQL调优的唯一目的是“资源利用最大化”,即CPU、内存、磁盘I/O、网络I/O四种资源利用最大化。所有调优手段都是围绕资源使用开展的。所谓资源利用最大化是指SQL语句尽量高效,节省资源开销,以最小的代价实现最大的效益。比如做典型点查询的时候,可以用seqscan+
SQL执行计划介绍 SQL执行计划概述 详解 父主题: SQL调优指南
审视和修改表定义 审视和修改表定义概述 选择存储模型 选择分布方式 选择分布列 使用分区表 选择数据类型 父主题: SQL调优指南
典型SQL调优点 SQL调优是一个不断分析与尝试的过程:试跑Query,判断性能是否满足要求;如果不满足要求,则通过查看执行计划分析原因并进行针对性优化;然后重新试跑和优化,直到满足性能目标。 SQL自诊断 语句下推调优 子查询调优 统计信息调优 算子级调优 数据倾斜调优 父主题:
使用Plan Hint进行调优 Plan Hint调优概述 Join顺序的Hint Join方式的Hint 行数的Hint Stream方式的Hint Scan方式的Hint 子链接块名的hint 运行倾斜的hint 参数化路径的Hint Hint的错误、冲突及告警 Plan Hint
实际调优案例 案例:选择合适的分布列 案例:建立合适的索引 案例:增加JOIN列非空条件 案例:使排序下推 案例:设置cost_param对查询性能优化 案例:调整分布键 案例:调整局部聚簇键 案例:改建分区表 案例:调整GUC参数best_agg_plan 案例:改写SQL消除子查询
附录 扩展函数 父主题: SQL参考
最佳实践 表设计最佳实践 SQL查询最佳实践 数据倾斜查询最佳实践
表设计最佳实践 选择存储模型 选择分布方式 选择分布列 使用分区表 选择数据类型 查看表所在节点 父主题: 最佳实践
数据倾斜查询最佳实践 快速定位查询存储倾斜的表 父主题: 最佳实践
用户自定义函数 集群启动时,除了启动CN、DN之外,还会启动UDF master进程。当需要执行fenced模式的UDF时,UDF master进程会fork出UDF worker进程,UDF worker进程执行fenced模式的UDF。 PL/SQL语言函数
存储过程 存储过程 数据类型 数据类型转换 数组和record 声明语法 基本语句 动态语句 控制语句 事务语句 其他语句 游标 高级包 Retry管理 调试
数组和record 数组 record 父主题: 存储过程
声明语法 基本结构 匿名块 子程序 父主题: 存储过程