news 2026/9/9 12:15:59

WITH AS vs 临时表:性能对比实测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WITH AS vs 临时表:性能对比实测

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
创建性能对比测试脚本:1. 相同功能的WITH AS查询和临时表查询各一组 2. 包含执行计划分析 3. 不同数据量级(1万/100万/1000万行)的测试 4. 内存使用监控。使用Kimi-K2生成并自动执行测试,输出可视化对比图表。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果

今天在优化Oracle查询时,遇到了一个经典问题:使用WITH AS(公共表表达式)和临时表,哪种方式性能更好?为了找到答案,我决定做个系统测试。下面分享我的测试过程和发现,希望能帮到有同样疑问的朋友。

  1. 测试环境搭建 首先在InsCode(快马)平台创建了Oracle测试环境,这个平台的好处是能快速搭建数据库实例,省去了本地安装的麻烦。我准备了三组测试数据:1万行、100万行和1000万行,模拟不同规模的数据处理场景。

  2. 测试方案设计 测试对比两种实现方式:

  3. WITH AS子句:直接在查询中定义临时结果集
  4. 全局临时表:先创建临时表再插入数据

每组测试都包含相同的业务逻辑:多表关联、聚合计算和排序操作。为了确保公平性,每个测试都执行10次取平均值。

  1. 关键测试指标 主要监控四个维度:
  2. 查询执行时间
  3. 内存占用峰值
  4. 物理读写次数
  5. 执行计划差异

  6. 测试结果分析 在小数据量(1万行)时:

  7. WITH AS平均耗时0.8秒
  8. 临时表方案1.2秒
  9. WITH AS明显更快,因为避免了临时表的创建和写入开销

中等数据量(100万行)时: - WITH AS平均12秒 - 临时表9秒 - 临时表开始反超,因为Oracle优化器能更好利用临时表的统计信息

大数据量(1000万行)时: - WITH AS出现内存溢出 - 临时表稳定在110秒完成 - 临时表展现出更好的可扩展性

  1. 执行计划洞察 通过Kimi-K2生成的执行计划可视化发现:
  2. WITH AS会被多次物化,导致重复计算
  3. 临时表有更优的索引利用策略
  4. 复杂查询时临时表更容易获得稳定的执行计划

  5. 内存使用对比监控显示WITH AS在内存充足时很高效,但数据量大时容易成为瓶颈。临时表虽然初始开销大,但内存使用更平稳。

  6. 实践建议 根据测试结果,我总结出这些经验:

  7. 简单查询或小数据量优先用WITH AS
  8. 复杂查询或百万级以上数据用临时表
  9. 需要重复引用结果集时临时表优势明显
  10. 内存紧张的环境慎用WITH AS

  11. 优化技巧 如果必须使用WITH AS:

  12. 添加MATERIALIZE提示强制物化
  13. 限制结果集大小
  14. 避免在WITH子句中做复杂计算

对于临时表: - 预先创建好表结构 - 考虑添加适当索引 - 批量插入数据效率更高

这次测试让我深刻体会到,没有绝对的好坏,只有适合的场景。通过InsCode(快马)平台的便捷环境,我快速完成了这个性能对比实验。平台内置的Kimi-K2模型不仅能生成测试脚本,还能自动分析执行计划,大大提升了我的工作效率。特别是部署测试环境的过程特别顺畅,点几下就搞定了,省去了繁琐的配置工作。

实际使用中发现,平台编辑器对SQL语法支持很友好,有智能提示和错误检查,写复杂查询时特别有帮助。建议有类似性能优化需求的朋友,可以自己动手试试不同方案,数据会告诉你最佳选择。

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
创建性能对比测试脚本:1. 相同功能的WITH AS查询和临时表查询各一组 2. 包含执行计划分析 3. 不同数据量级(1万/100万/1000万行)的测试 4. 内存使用监控。使用Kimi-K2生成并自动执行测试,输出可视化对比图表。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 13:27:05

ResNet18多标签分类教程:3步完成服装属性识别

ResNet18多标签分类教程:3步完成服装属性识别 引言 作为一名电商创业者,你是否遇到过这样的烦恼:每天需要手动为上百件服装商品打标签,从颜色、款式到材质,每个属性都要逐一标注?这不仅耗时耗力&#xff…

作者头像 李华
网站建设 2026/9/6 11:23:11

Rembg抠图实战案例:电商商品精修步骤详解

Rembg抠图实战案例:电商商品精修步骤详解 1. 引言:智能万能抠图 - Rembg 在电商运营中,商品图片的视觉呈现直接影响转化率。传统人工抠图耗时耗力,尤其面对复杂边缘(如蕾丝、金属反光、透明材质)时效率低…

作者头像 李华
网站建设 2026/9/9 0:43:12

告别复杂配置|一键部署MiDaS单目深度估计模型

告别复杂配置|一键部署MiDaS单目深度估计模型 🌐 技术背景:从2D图像到3D空间感知的跨越 在计算机视觉领域,单目深度估计(Monocular Depth Estimation)是一项极具挑战性但又极具实用价值的任务。与双目立体…

作者头像 李华
网站建设 2026/9/5 10:44:47

图像分割进阶:Rembg模型训练技巧

图像分割进阶:Rembg模型训练技巧 1. 引言:智能万能抠图 - Rembg 在图像处理与内容创作领域,精准、高效地去除背景是许多应用场景的核心需求。无论是电商商品图精修、社交媒体内容制作,还是AI生成图像的后期处理,传统…

作者头像 李华
网站建设 2026/9/2 11:17:07

智能万能抠图新体验|基于Rembg大模型镜像发丝级去背景

智能万能抠图新体验|基于Rembg大模型镜像发丝级去背景 在图像处理领域,精准、高效、自动化地去除背景一直是设计师、电商运营、内容创作者的核心需求。传统手动抠图耗时费力,而早期AI工具又常受限于识别精度低、边缘模糊、依赖网络服务等问题…

作者头像 李华
网站建设 2026/9/4 2:37:46

Rembg抠图性能优化:CPU版高效部署参数详解

Rembg抠图性能优化:CPU版高效部署参数详解 1. 智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体素材制作,还是AI生成内容的后处理,精准高效的抠图能力都直接影…

作者头像 李华