我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用WITH AS提高性能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用WITH AS提高性能

这篇文章将为大家详细讲解有关怎么使用WITH AS提高性能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  如何使用WITH AS提高性能

  1. 案例起因

  公司门店应用程序每天都要出一份报表,用来统计所有商品当天的期初库存数量、入库数量、出库数量

  及当天的期末库存数量。运行半年以后,这份报表运行越来越慢,到现在,每次运行该报表显示当天数据时需要近20秒的时间。于是开发人员找到我,希望我看看,是不是可以使该报表运行的时间更短。

  该报表就是一段SQL语句,主要由三部分组成,第一部分是计算每个商品的期初数量,第二部分是计算每个商品的当天发生(包括入库和出库的)数量,第三部分是计算每个商品的期末数量,也就是当天的余额。每个部分使用UNION ALL连接起来。

  我看到该报表,第一个感觉就是这段SQL里的每个部分都要对表进行扫描,明显成本过高。应该可以使用WITH AS进行改写。

  2. WITH AS的含义

  WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。

  特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。

关于“怎么使用WITH AS提高性能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用WITH AS提高性能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用Swoole怎么提高Laravel性能

使用Swoole怎么提高Laravel性能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。环境1:硬件: 1 CPU, 4 Cores, 16GB MemoryMacOS 1
2023-06-15

怎么使用Redis的管道来提高性能

在Redis中使用管道可以显著提高性能,因为它允许客户端在一次网络往返中发送多个命令,而不是每个命令都需要单独的网络往返。这样可以减少网络延迟,并且可以在一次请求中处理多个命令,减少了服务器的处理时间。要使用Redis的管道功能,首先需要
怎么使用Redis的管道来提高性能
2024-05-07

怎么提高电脑性能

小编给大家分享一下怎么提高电脑性能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体操作:1.点击左下角的搜索,搜索“控制面板”,点击进入。2.在查看方式处选择「
2023-06-27

Javascript之怎么提高React性能

本篇内容主要讲解“Javascript之怎么提高React性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript之怎么提高React性能”吧!1.解决重复渲染问题我们大多数人都知
2023-07-05

win10怎么提高显卡性能

今天小编给大家分享一下win10怎么提高显卡性能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win10提高显卡性能的设置教
2023-07-01

Cassandra中怎么提高性能和扩展性

要提高Cassandra的性能和扩展性,可以考虑以下几点:数据建模优化:设计合理的数据模式,避免数据倾斜和冗余,优化查询性能。分区键选择:选择合适的分区键,避免数据热点,分散数据存储在集群中的节点上,提高负载均衡性能。副本策略设置:合理设置
Cassandra中怎么提高性能和扩展性
2024-03-15

虚拟主机性能怎么提高

要提高虚拟主机的性能,可以采取以下几个方法:1. 优化网站代码:对网站代码进行优化,包括压缩图片、合并CSS和JavaScript文件、使用缓存等,以减少网站的加载时间。2. 使用缓存技术:使用缓存技术可以减少服务器的负载,提高网站的响应速
2023-08-26

mongodb并发读性能怎么提高

要提高MongoDB的并发读性能,可以考虑以下几个方面的优化:数据模型设计:合理设计数据模型,将相关的数据放在同一个文档中,避免频繁的查询和多次读取。索引优化:通过创建合适的索引,可以加快读取操作的速度。根据查询频率和查询条件,选择适当的索
2023-10-26

后端接口怎么提高性能

本篇内容主要讲解“后端接口怎么提高性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“后端接口怎么提高性能”吧!1. MySQL查询慢是什么体验?谢邀,利益相关。大多数互联网应用场景都是读多写少,
2023-06-15

怎么用FieldMask提高C#的gRpc服务性能

这篇文章主要介绍“怎么用FieldMask提高C#的gRpc服务性能”,在日常操作中,相信很多人在怎么用FieldMask提高C#的gRpc服务性能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Fiel
2023-06-29

编程热搜

目录