检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不同的SQL语句,游标的使用情况不同,详细信息请参见表1。 表1 游标使用情况 SQL语句 游标 非查询语句 隐式的 结果是单行的查询语句
store_sales_row | [13.352,13.352] | 3360 | [34KB, 34KB] | 上述例子中,全表扫描返回3360条数据,过滤掉大量数据,在ss_sold_date_sk列上建立索引后,使用IndexScan扫描效率显著提高,从3.6秒提升到13毫秒。 示例2:如果
分析作业是否被阻塞 数据库系统运行时,在某些业务场景下查询语句会被阻塞,导致语句运行时间过长,可以强制结束有问题的会话。 操作步骤 查看阻塞的查询语句及阻塞查询的表、模式信息。 1 2 3 4 5 6 7 8 9 10 11 SELECT w.query as waiting_query
SQL诊断场景 问题现象 用户的SQL语句执行时间长,消耗资源多。 定位思路 如果用户的SQL语句在执行时存在效率问题,内核执行后给出优化建议。用户通过查询SQL语句的执行历史,检索出优化建议,进一步优化SQL语句的编写,提高集群的查询效率。 解决步骤 查看“SQL诊断”页面,选择可疑的时间段。
值的变量。 查询语句中,into和out不能同时存在; 占位符命名以“:”开始,后面可跟数字、字符或字符串,与USING子句的bind_argument一一对应; bind_argument只能是值、变量或表达式,不能是表名、列名、数据类型等数据库对象,即不支持使用bind_ar
PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图6。 图6 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该
的增量值。 进入和退出一个包含EXCEPTION子句的块要比不包含的块开销大的多。因此,不必要的时候不要使用EXCEPTION。 在下列场景中,无法捕获处理异常,整个存储过程回滚:节点故障、网络故障引起的存储过程参与节点线程退出以及COPY FROM操作中源数据与目标表的表结构不一致造成的异常。
GaussDB(DWS)存储过程控制语句 返回语句 条件语句 循环语句 分支语句 空语句 错误捕获语句 GOTO语句 父主题: GaussDB(DWS)存储过程
使用JDBC或ODBC进行GaussDB(DWS)二次开发 开发前准备 基于JDBC开发 基于ODBC开发
GaussDB(DWS)存储过程高级包 DBMS_LOB DBMS_RANDOM DBMS_OUTPUT UTL_RAW DBMS_JOB DBMS_SQL 父主题: GaussDB(DWS)存储过程
indow agg,占到总执行时间95%以上,系统资源不能充分利用。研究发现该场景的特点是:将两列分别求sum作为一个子查询,外层对两列的和再求和后做trunc,然后排序。可以尝试将语句改写为子查询,使排序下推。 优化前 表结构如下所示: 1 2 CREATE TABLE public
变量定义语句。每行应只包含一条语句。 同一层的IF、ELSEIF、ELSE和END关键字应开始于同一列,执行语句缩进。 CASE和END关键字应位于同一列,WHEN和ELSE关键字应缩进。 同一层的LOOP和END LOOP关键字应位于同一列,层内语句或嵌套应依次缩进。 父主题:
基于JDBC开发 JDBC开发流程 JDBC包与驱动类 加载驱动 连接数据库 执行SQL语句 处理结果集 常用JDBC开发示例 应用端加工RoaringBitmap结果集并入库GaussDB(DWS)开发示例 JDBC接口参考 父主题: 使用JDBC或ODBC进行GaussDB(DWS)二次开发
案例:增加JOIN列非空条件 若Join列上的NULL值较多,可以加上is not null过滤条件,以实现数据的提前过滤,提高Join效率。 优化前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
DECLARE … BEGIN … IF v_num IS NULL THEN NULL; -- 不需要处理任何数据。 END IF; END; / 父主题: GaussDB(DWS)存储过程控制语句
indow agg,占到总执行时间95%以上,系统资源不能充分利用。研究发现该场景的特点是:将两列分别求sum作为一个子查询,外层对两列的和再求和后做trunc,然后排序。可以尝试将语句改写为子查询,使排序下推。 优化前 表结构如下所示: 1 2 CREATE TABLE public
过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不同的SQL语句,游标的使用情况不同,详细信息请参见表1。 表1 游标使用情况 SQL语句 游标 非查询语句 隐式的 结果是单行的查询语句
Connectivity,开放数据库互连)是由Microsoft公司基于X/OPEN CLI提出的用于访问数据库的应用程序编程接口。应用程序通过ODBC提供的API与数据库进行交互,在避免了应用程序直接操作数据库系统的同时,增强了应用程序的可移植性、扩展性和可维护性。 ODBC的系统结构参见图1。
Database Connectivity,开放数据库互连)是由MS公司基于X/OPEN CLI提出的用于访问数据库的应用程序编程接口。应用程序通过ODBC提供的API与数据库进行交互,在避免了应用程序直接操作数据库系统的同时,增强了应用程序的可移植性、扩展性和可维护性。 ODBC的系统结构参见图1。
违反规范的影响: 针对列存表频繁执行UPDATE/DELETE造成CU膨胀,导致空间膨胀和访问性能下降。 针对列存表并发执行UPDATE/DELETE,导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 频繁执行UPDATE/DELETE操作的表需设计为行存表。 按