数据库链接执行含ROLLUP的SQL的Bug

Doris之rollup上卷及物化视图 通过建表语句创建出来的表称为 Base 表(Base Table,基表)在 Base 表之上,我们可以创建任意多个 ROLLUP 表。这些 ROLLUP 的数据是基于 Base 表产生的,并且在物理上是独立存储的。 阅读详情

通过微软的报表服务器访问Oracle,做好一张报表,为了偷懒,直接在数据库建立了一个视图,然后显示就行了。结果测试时报ORA-600 [qks3tinit]。登陆到本机一运行,没问题啊。怀疑是微软报表服务器连接Oracle的接口有问题。但是其他几个类似视图又都没问题。于是检测SQL:

   SELECT  (CASE
                WHEN fjname IS NULL
                   THEN '全局'
                ELSE fjname
             END) fjname,
            (CASE
                WHEN stat_type IS NULL
                   THEN '总计'
                ELSE stat_type
             END) stat_type,
            (CASE
                WHEN cust_type_old IS NULL
                   THEN '总计'
                ELSE cust_type_old
             END
            ) cust_type_old,
            cnt, curr_user
       FROM (SELECT fjname, stat_type, cust_type_old, COUNT (*) cnt, SUM(CASE state WHEN '正常' THEN 1 ELSE 0 END) curr_user
                 FROM tmp_tj0507001
                WHERE fjname IS NOT NULL
             GROUP BY grouping sets(rollup(fjname, stat_type, cust_type_old), rollup(stat_type, cust_type_old)))
   ORDER BY fjname, stat_type, cust_type_old;

执行计划:

SELECT STATEMENT, GOAL = HINT: ALL_ROWS   Cost=10 Cardinality=15 Bytes=780
 SORT ORDER BY   Cost=10 Cardinality=15 Bytes=780
  VIEW Object owner=YAOYP  Cost=8 Cardinality=15 Bytes=780 
   TEMP TABLE TRANSFORMATION     
    VIEW Object owner=YAOYP  Cost=8 Cardinality=4 Bytes=208
     VIEW Object owner=YAOYP  Cost=8 Cardinality=4 Bytes=208
      UNION-ALL     
       TABLE ACCESS FULL Object owner=SYS Object name=SYS_TEMP_0FD9D668F_9A864B59 Cost=2 Cardinality=1 Bytes=52
       TABLE ACCESS FULL Object owner=SYS Object name=SYS_TEMP_0FD9D6690_9A864B59 Cost=2 Cardinality=1 Bytes=52
       TABLE ACCESS FULL Object owner=SYS Object name=SYS_TEMP_0FD9D6691_9A864B59 Cost=2 Cardinality=1 Bytes=52
       TABLE ACCESS FULL Object owner=SYS Object name=SYS_TEMP_0FD9D6691_9A864B59 Cost=2 Cardinality=1 Bytes=52
RECURSIVE EXECUTION  Object name=SYS_LE_7_0   
RECURSIVE EXECUTION  Object name=SYS_LE_7_1   
RECURSIVE EXECUTION  Object name=SYS_LE_7_2   
RECURSIVE EXECUTION  Object name=SYS_LE_7_3 

就看到一个TEMP TABLE TRANSFORMATION,这个比较少见哦。另外一个类似SQL:

   SELECT   (CASE
                WHEN fjname IS NULL
                   THEN '全局'
                ELSE fjname
             END) fjname,
            (CASE
                WHEN cust_type IS NULL
                   THEN '总计'
                ELSE cust_type
             END
            ) cust_type,
            curr_user
       FROM (SELECT fjname, (CASE WHEN cust_type IS NULL THEN '公免等' ELSE cust_type END) cust_type,
                    SUM(CASE state WHEN '正常' THEN 1 ELSE 0 END) curr_user
               FROM tmp_tj0507001
              WHERE fjname IS NOT NULL AND state = '正常'
              GROUP BY ROLLUP (fjname, (CASE WHEN cust_type IS NULL THEN '公免等' ELSE cust_type END)))
   ORDER BY fjname, cust_type;

执行计划:

SELECT STATEMENT, GOAL = CHOOSE   Cost=3021 Cardinality=43 Bytes=1376
 SORT ORDER BY   Cost=3021 Cardinality=43 Bytes=1376
  VIEW Object owner=YAOYP  Cost=3020 Cardinality=43 Bytes=1376
   SORT GROUP BY ROLLUP   Cost=3020 Cardinality=43 Bytes=989
    INDEX FAST FULL SCAN Object owner=YAOYP Object name=SYS_IOT_TOP_62350 Cost=367 Cardinality=1132418 Bytes=26045614

没有TEMP TABLE TRANSFORMATION了。看来要避免这个执行路径,想了半天也没办法,开始还怀疑是参数STAR_TRANSFORMATION_ENABLED问题,后来一看是FALSE的。只能到Metalink上找了,结果又是一个Bug,最近简直是一出问题就是Bug,以前怎么就不觉得呢?

文档 ID:  注释:2836690.8
主题:  Support Description of Bug 2836690
类型:  PATCH
状态:  PUBLISHED
 
内容类型:  TEXT/X-HTML
创建日期:  08-AUG-2003
上次修订日期:  14-AUG-2003
 Click here for details of sections in this note.
Bug 2836690  ROLLUP over DBLINK may fail with OERI:qks3tinit
 This note gives a brief overview of bug 2836690.
Affects:

    Product (Component) Oracle Server (RDBMS)
    Range of versions believed to be affected Versions >= 9 but < 10G
    Versions confirmed as being affected 

        * 9.2.0.3

    Platforms affected Generic (all / most platforms affected)

Fixed:

    This issue is fixed in 

        * 9.2.0.4 (Server Patch Set)
        * 10G Production Base Release

Symptoms:

    * Internal Error may occur (ORA-600)
    * ORA-600 [qks3tinit]

Related To:

    * DB-Link / Distributed
    * Analytic SQL (Windowing etc..)

Description

ORA-600 [qks3tinit] possible from queries using ROLLUP which reference
remote objects.

The full bug text (if published) can be seen at <Bug:2836690>
This link will not work for UNPUBLISHED bugs.

类似还有一个Bug:

文档 ID:  注释:2419335.8
主题:  Support Description of Bug 2419335
类型:  PATCH
状态:  PUBLISHED
 
内容类型:  TEXT/X-HTML
创建日期:  08-AUG-2003
上次修订日期:  14-AUG-2003
 Click here for details of sections in this note.
Bug 2419335  OERI:[qks3tInit] possible from STAR transformation
 This note gives a brief overview of bug 2419335.
Affects:

    Product (Component) Oracle Server (RDBMS)
    Range of versions believed to be affected Versions >= 9.2 but < 10G
    Versions confirmed as being affected 

        * 9.2.0.3

    Platforms affected Generic (all / most platforms affected)

Fixed:

    This issue is fixed in 

        * 9.2.0.4 (Server Patch Set)
        * 10G Production Base Release

Symptoms:

    * Internal Error may occur (ORA-600)
    * ORA-600 [qks3tInit]

Related To:

    * DB-Link / Distributed
    * Star Transformation

Description

ORA-600 [qks3tInit] possible from star transformation query
where all the tables are remote (ie: over a dblink)
 
Workaround: 
  Set star_transformation_enabled = false at the remote DB.

The full bug text (if published) can be seen at <Bug:2419335>
This link will not work for UNPUBLISHED bugs.

不过我还是觉得是TEMP TABLE TRANSFORMATION问题,没理由第2个SQL里的ROLLUP就没问题哦。唉,放弃ROLLUP咯。关于上面这个执行路径资料好少,有办法避免么?

Apache Doris :Rollup 物化视图 而 bitmap_union_count 等于 bitmap_union 的结果求 count,所以如果查询中涉及到count(distinct) 则通过创建带 bitmap_union 聚合的物化视图方可加快查询。(10000,‘zss’,‘北京’,18,0,12345678910,'北京朝阳区 ',‘2017-10-01 07:00:00’),(10000,‘zss’,‘北京’,18,0,12345678910,'北京朝阳区 ',‘2017-10-01 08:00:00’), 阅读详情

相关推荐

多维聚合实战:从Pandas到SQL构建OLAP立方体

多维聚合是现代数据分析的核心能力,本质是在高维数据立方体(Data Cube)上执行切片、切块、钻取与上卷等操作,突破传统二维groupby的表达局限。其原理源于OLAP理论,通过预计算+结构化索引实现亚秒级交叉分析,技术价值在于统一口径、提升自助分析效率、支撑实时BI与风控决策。典型应用场景包括电商销售归因、用户行为分群、跨区域业绩对比及SaaS产品指标监控。本文聚焦Data Manipulation与Multi-Dimensional Aggregation两大核心热词,结合Pandas MultiIn

a5199519的博客 492

doris rollup

ROLLUP 在多维分析中是“上卷”的意思,即将数据按某种指定的粒度进行进一步聚合。

weixin_51981189的博客 290

多维聚合数据操作:从GROUP BY到立方体切片的工程实践

多维聚合不是简单的SQL分组计算,而是基于维度建模、粒度对齐与语义约束的数据立方体切片操作。其核心原理在于将传统平面分组升维为N维空间中的局部上下文计算,避免全局分母误用、层级错配和NULL语义混淆等典型陷阱。技术价值体现在支撑高并发交互式下钻、精准比例指标生成及跨层级归因分析,广泛应用于BI报表、用户行为路径、IoT时序下钻与财务多维分析等场景。本文聚焦多维聚合中的数据操作本质与实操框架,涵盖ROLLUP/CUBE选型、比例类指标安全计算、动态下钻路由及空值语义处理等关键环节。

Faith, Simpleness, Transparency, Innovation 495

数据库小计和总计之 Rollup函数 简单介绍

分组函数之ROLLUP用法简单介绍

qq_14959289的博客 9102

Apache Doris 单机部署指南:从零搭建高性能实时分析数据库测试环境

实时分析数据库作为现代数据处理架构的核心组件,通过MPP(大规模并行处理)架构实现海量数据的高性能查询。其技术价值在于能够将复杂的分析查询分解为多个并行任务,显著提升数据处理效率,广泛应用于实时报表、交互式分析和数据仓库等场景。本文聚焦于Apache Doris这一开源MPP数据库,针对开发测试和学习需求,详细解析其单机版部署方案。通过对比Docker快速启动与手动二进制包部署两种主流方式,并结合Stream Load API等热词,指导读者快速搭建轻量级测试环境,完成从部署、基础SQL操作到常见问题排查的

weixin_30703911的博客 434

Notion数据库思维:开发者如何构建结构化知识库与项目管理

在信息爆炸的时代,高效管理非结构化信息是开发者和技术团队面临的核心挑战。传统工具如Markdown、Excel、Trello等往往形成信息孤岛,导致数据割裂与协作低效。其根本原因在于缺乏统一的信息结构层,使得知识难以关联、复用和流动。Notion通过引入‘数据库思维’和‘块(Block)’原子化设计,将笔记、任务、文档等所有信息元素转化为可自定义属性、支持双向关联的数据库条目,从而在底层实现了信息的结构化与互联。这种设计不仅解决了信息孤岛问题,更让开发者能够像操作数据库一样,通过属性筛选、关联查询和多种视图

weixin_33851429的博客 406

深入解析 Oracle 的聚合函数 ROLLUP

在数据库的日常使用中,数据的统计与分析是至关重要的环节,而聚合函数则是实现这些操作的得力工具,其中 ROLLUP 函数更是以其独特的功能,为复杂的数据汇总需求提供了高效的解决方案。

renkejia1988的博客 3218

多维聚合中的数据操作:超越GROUP BY的实战方法论

多维聚合是OLAP分析与BI报表的核心技术基础,其本质是在时间、地理、业务等多维度交叉下对海量数据进行结构化汇总。传统GROUP BY仅解决静态分组问题,而真实场景要求支持维度层级折叠、空值语义治理、聚合后计算及跨粒度指标派生。关键技术价值在于保障指标口径一致性、提升聚合结果可用性,并支撑实时看板、用户分群、A/B测试等高阶分析。典型应用场景包括电商大促实时监控、金融风控宽表构建和SaaS行为分析。本文聚焦Data Manipulation与Multi-Dimensional Aggregation两大核心

weixin_30740295的博客 328

从OpenAI Codex SQLite Bug看AI工具链稳定性与数据库实战避坑指南

在软件开发中,数据库作为数据持久化的核心组件,其稳定性和正确使用是系统可靠性的基石。SQLite作为一款轻量级、嵌入式的数据库引擎,因其零配置、单文件存储和完整的ACID事务支持,被广泛应用于桌面应用、移动开发及各类工具软件中,成为处理本地数据存储的经典选择。其技术价值在于以极低的资源开销为应用提供关系型数据管理能力,尤其适合作为配置、缓存和状态管理的存储方案。然而,若使用不当,如在并发写入时未妥善处理连接与事务,或忽略模式迁移的健壮性,便可能引发数据库锁死、数据损坏等“致命”问题,导致整个应用瘫痪。这在A

weixin_30292745的博客 404

rollup 在中石油开发数据库系统的使用实例

rollup 在中石油开发数据库系统的使用实例 用于统计注汽井周期生产数据的SQL实例

【技能---ubuntu20.04更换国内镜像源】

安装好ubuntu20.04后,在下载软件等安装包的时候,速度特别的慢,为此就想着更换一下镜像源,以此来增加下载的速度!!!下面是换源的具体流程!!!提示:以下是本篇文章正文内容,下面案例可供参考以上到这里就更换完软件源了,如有不足之处,请大家斧正!!!

fyc300的博客 1万+

MySQL数据库评估内容及面试题汇总

一、数据库基础知识 1.1、数据库存储与其他存储有何区别? a)数据保存在数据库:1)数据永久保存;2)使用SQL语句,查询方便效率高。3)专门的管理工具,管理数据方便 b)数据保存在内存:优点: 存取速度快;缺点: 数据不能永久保存 c)数据保存在文件:优点: 数据永久保存;缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便 1.2、什么是SQL? 结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。 作用:用于存取数据、查询、更新和管理关系数

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 1061

西安电子科技大学841学长经验分享(总成绩第三名)

西安电子科技大学841学长经验分享(总成绩第三名)

qq_30953547的博客 1082

oracle group by的按照不同粒度聚合方法

一直以为group by 除了rollup和cube可以按照子句中指定的字段进行不同粒度的聚合,没有其他的方法了。今天因为groupby的bug(hash group b y)而发现了另一种方法,如下例: with tmp a...

301

liquibase扩展支持达梦数据库

近期项目中需要支持国产数据库,需要liquibase底层支持达梦数据库,记录下操作的详细步骤以便分享。 1.liquibase支持的数据库很多如MySQL, PostgreSQL, Oracle, Sql Server, DB2。但是达梦数据库并不支持,所以需要新建DMDatabase类来适配达梦数据库。达梦语法和Oracle很像所以只需要复制liquibase-core下的Oracle Database做些修改就可了。以下为需要修改的地方 public class DMDatabase extends A

qq_43677719的博客 5472

汇川PLC和PLC之间ModebusTCP通讯

然后在全局变量中创建相应的变量关联IW和QW的寄存器创建全部变量//AM402作为主站——读H3U(D12-D21)//AM402作为主站——写给H3U(D200-D209)或者使用数组的方式。

panjinliang066333的博客 3万+

AgentReview CLI 命令行全参数指南:review 与 decision 两大入口完整清单

AgentReview 是 EMNLP 2024(Main Track, Oral)论文《AgentReview: Exploring Academic Peer Review with LLM Agent》的官方实现,也是首个基于 LLM Agent 的学术同行评审(Peer Review)模拟框架。本文为你完整梳理其 **19 个 CLI 命令行参数**,并详解 `run_paper_revi

gitblog_00048的博客 440

/lib//libclntsh.so: file format not recognized; treating as linker script

centos7.7+oracle19.3 建库过程报错:预检查都是通过的 /oracle/product/19.3.0/db_1/lib/libasmperl19.a -Wl,--no-whole-archive -lclntsh -lclntshcore -lasmclntsh19 -lhasgen19 -lskgxp19 -locr19 -lcell19 -lirc INFO: /usr/bin/ld:/home/app/oracle/product/19.3.0/db_1/li...

sqlora的专栏 9914

Notion数据库入门:属性、记录与视图核心概念解析

数据库是组织和检索数据的核心机制,传统关系型数据库需要严格的表结构与SQL知识,而轻量级数据管理工具则显著降低了使用门槛。Notion数据库正是这类工具的代表,它将结构化字段(属性)与灵活页面结合,让每条记录既能参与筛选、排序和分组,又能承载完整内容。通过属性定义字段类型,记录保存具体数据,视图则从表格、看板、日历等角度呈现同一份信息,这一机制使得个人知识库、项目管理和内容规划变得高效有序。无需编写代码,即可按需设计数据模型,并通过关联与汇总实现跨库统计。理解属性、记录与视图这三个核心概念,就掌握了Noti

weixin_33895657的博客 442

Dify插件实战:实时渲染AI生成的HTML/SVG/Canvas代码

在现代Web开发与AI应用集成中,前端渲染技术是实现动态内容展示的核心。其原理在于浏览器引擎解析HTML、CSS、JavaScript等代码,并将其转换为可视化的用户界面。这项技术的价值在于极大提升了开发效率与用户体验,允许开发者快速构建和迭代交互式应用。在AI应用开发领域,尤其是大语言模型(LLM)集成场景,如何将模型生成的**结构化代码**(如描述UI的HTML或数据图表的SVG)实时转化为可视化组件,成为一个关键需求。这直接关系到**Dify**等低代码AI平台能否提供流畅的、所见即所得的交互体验。本

weixin_42545664的博客 498

机器学习 -- 信用卡评分模型 -- 互联网金融风控

互联网金融主要分为资金类和资产类。资金类主要是理财产品,吸储,主要指标是用户转化、留存和复投,重在客户运营。资产类主要是贷款,包括消费金融和现金贷,小额贷款属于此类,主要目的是用户转化,还款和风险控制,信用卡评分模型就属于风险控制。 信用评分作用是对贷款申请人(信用卡申请人)做风险评估分值的方法。 信用卡评分是以大量数据的统计结果为基础,根据客户提供的资料和历史数据对客户的信用进行评估,评分卡模型...

XiaoMaEr66的博客 2420

多维聚合实战:从SQL GROUP BY到OLAP立方体的工程化落地

多维聚合是现代数据分析的核心能力,本质是基于维度建模与度量计算的交互式分析范式。它突破传统GROUP BY的单向降维局限,依托OLAP立方体思想,实现切片、钻取、旋转等动态探查。技术价值在于兼顾实时性与灵活性——通过CUBE/ROLLUP语法、物化视图、向量化引擎(如Polars/ClickHouse)及星型模型设计,支撑亿级数据下的秒级交叉分析。典型应用场景覆盖BI自助分析、用户行为归因、财务多维成本分摊及风控标签组合计算。本文聚焦工程落地,详解维度建模、非可加性度量处理与稀疏数据优化,直击SQL工程师、

weixin_30315723的博客 419

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册

微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅

XiaoqiangClub的博客 2306

【GaussDB】分析一个使用子查询进行update导致的coredump

摘要 本文分析了GaussDB数据库中一个由子查询update操作引发的coredump问题。作者在506.0.0SPC0100版本环境中复现了该问题,通过创建测试表并执行特定update语句触发了coredump。

DarkAthena的博客 448

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Cherry Studio 开发环境配置与调试完整指南:从 IDE 搭建到断点秒断

如果你刚把 Cherry Studio 源码拉到本地,满怀期待地敲下 `pnpm dev`,却撞上一堵"node 版本不对""better-sqlite3 崩溃""调试器死活不工作"的墙,这篇文章就是为你准备的。作为一个基于 Electron + React + TypeScript 的 AI 生产力桌面应用,Cherry Studio 的开发环境比普通 Web 项目多出主进程、渲染进程、原生模块

gitblog_00800的博客 392

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Notion 核心功能解析与敏捷开发团队知识库搭建实战

在团队协作与知识管理领域,模块化工作空间和数据库驱动的信息组织是提升效率的关键技术理念。其核心原理在于通过可自由组合的“块”作为基础单元,将文档、任务、数据等多种信息形态统一管理,打破传统工具间的信息孤岛。这种设计的技术价值在于提供了极致的灵活性,允许用户像搭积木一样自定义工作流,并通过强大的关联能力实现数据的动态联动。在应用场景上,它尤其适合敏捷开发团队,可用于构建结构化的项目文档中心、可视化的任务看板以及互联互通的知识体系。本文以 Notion 为例,通过一个完整的“星辰商城”微服务项目实战,详细展示了

weixin_33912638的博客 338

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 安装中文版Adobe Reader 7 for Linux
下一篇: 生日随感
ern
ern
博客等级 码龄24年 25粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值