摘要:
基本信息 基本情况 表共800W数据,从260W的结果集中计算出不同的案件数量(130万),需要执行20多秒 原SQL内容 表信息和数据量 数据库版本信息 执行计划 znspgl= explain analyze select count(distinct c_bh_aj) as ajcount f 阅读全文
摘要:
pg_test_timing 是什么 pg_test_timing 是postgresql数据库提供的一个工具,用来评测操作系统计时效率和开销的,简单的说就是gettimeofday (操作系统方法)返回快慢。 pg_test_timing 使用的原因 目前知道的一个原因是,查看度量SQL执行时间经 阅读全文
摘要:
问题背景 随着数据的增长,系统中过千万的业务表在已经不少见。对这些超大表进行矫正更新时,直接update会产生大量的事务日志,撑爆日志空间,导致事务回滚矫正失败。 解决问题 解决问题的思路就是分批提交减少事务日志的大小,其中一种方法是在存储过程中使用游标更新并批量提交。 代码如下: 阅读全文
摘要:
基本结构 $$作用 函数代码在function中实际上为一个字符串,代码1和代码2等价,但代码中字符串的单引号需要写两个进行转义。 "美元符引用”书写字符串常量,使单引号、反斜线、$符等按照字面值进行解释,不需要写两个或在4个或着更多进行转义,代码3和代码4等价。 $中间可以包含可选的标签,但是标签 阅读全文
摘要:
背景 从某真实环境导出一张1.5亿记录的超大表,单用户分别在ABase 3.5.3(PostgreSQL9.5.4)和SYBASE15.7 下进行增删改查操作,对比一下两个数据库的性能 基本环境 操作系统,该环境为进行数据加压搭建的测试机器,性能比较好,硬件配置如下: ABase数据库信息 SYBA 阅读全文
摘要:
背景 最近收到一个SQL调优任务,该SQL在开发环境统计一个月的数据将近执行5秒。原本以为是一场波澜不惊的调优,没想到为了得到最优结果,经历了一波三折。 第一印象 初见慢SQL 而且我认为系统中出现这样的SQL是与“智能”两个字不匹配的! 第一次调优 查看数据库版本 with语句改写SQL,因为采用 阅读全文