从Approx_Count_Distinct到M7的CPU集成

昨天和朋友交流,联想起Oracle的两个特性,approx_count_distinct 和 SQL in Silicon,从软件到硬件,从典型SQL入手的优化,Oracle一步一步走向细节和性能的极致

在Oracle 12c中,有一个新的函数被引入进来 - approx_count_distinct 。这个函数的作用是,当我们进行Count Distinct计算时,给出一个近似值。

TOM说,这个函数会带来5x ~ 50x的性能提升,精度可以达到97%以上。在不需要绝对精确的返回值时,这个函数可以发挥其显著的功效。

这个估算值不绝对精确,但是在很多情况下足够,又可以极大的节省资源。在很多系统中,COUNT DISTINCT是个常见的操作,如果使用这个函数,则可能带来很好的性能改善。

以下是我非常简单的一个测试,可以看到基本的效果:

在简单的小数据量测试中,很可能看不到几十倍的改变。approx_count_distinct在大数据量下的表现会非常好,资源使用非常低,极其稳定

以下几张图引自数据库专家 Christian Antognini的测试,网页链接如下:

https://antognini.ch/2014/10/the-approx_count_distinct-function-a-test-case/

以下两图可以看到近似计算在大数据量下的响应时间稳定,内存消耗很少,这在大数据量的计算环境下,改进是显著的:

而且,这个估算值的偏差很小,如同TOM所有,通常97%的准确性,并且有信心达到95%,下图也很好的验证了这个偏离范围:

这让我联想到Oracle的M7处理器,其中的Software / SQL IN Silicon,Oracle进一步将那些常见的COUNT取值SQL固化进了CPU,进一步为用户带来10几倍的性能提升

count(*) 和 count distinct 都是非常常见的操作,也很消耗资源。从常见、常用的SQL入手,Oracle的一点点改进都会给用户带来帮助,在细节上的优化Oracle做到极致了。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2015-12-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏顾宇的研习笔记

讨论微服务之前,你知道微服务的 4 个定义吗?比”什么是微服务“更重要的事

关于“什么是微服务”的问题,其实并没有一个统一的认识。这些年在不同的场合里和不同背景的朋友都在探讨微服务。但聊得越多,就越发现大家聊的不是同一回事。和 DevO...

851
来自专栏散尽浮华

双机热备工作模式及高内聚低耦合架构解释

双机热备份技术是一种软硬件结合的较高容错应用方案。 该方案是由两台服务器系统和一个外接共享磁盘阵列柜 ( 也可没有,而是在各自的服务器中采取 RAID 卡 ) ...

1979
来自专栏美团技术团队

智能投放系统之场景分析最佳实践

背景 美团点评作为最大的生活服务互联网平台,需要针对数亿用户进行各种运营活动,而其线上存在超过千万的POI,覆盖超过2000城市、2.5万个后台商圈。在海量数据...

35312
来自专栏数据和云

技术人心中需要建立的标尺

今天,在我的个人微信讨论群中,有朋友问了一个问题: 关于数据库的负载信息怎么判断好坏啊?有没有一个尺度啊? 这是一个很好的问题,我个人也经历了这样的一个学习过程...

2634
来自专栏Java编程技术

Dubbo剖析-负载均衡

在服务提供方是集群的时候,为了避免大量请求一直落到一个或者几个服务提供方机器上,从而使这些机器负载很高,甚至打死,需要做一定的负载均衡策略。Dubbo 提供了多...

532
来自专栏华章科技

如何打造高性能大数据分析平台

大数据分析系统作为一个关键性的系统在各个公司迅速崛起,但是这种海量规模的数据带来了前所未有的性能挑战。同时,如果大数据分析系统无法在第一时间为运营决策提供关键数...

795
来自专栏刘迪的专栏

数据库评测报告第二期:MongoDB-3.2

看到MongoDB如此特性和优势,不免勾起了我们的好奇心。这一期的评测报告就着重针对MongoDB的读写性能的进行测试和分析,一起来揭秘一下如今MongoDB在...

4560
来自专栏PPV课数据科学社区

【学习】LinkedIn大数据专家深度解读日志的意义(二)

第二部分:数据集成   请让我首先解释 一下“数据集成”是什么意思,还有为什么我觉得它很重要,之后我们再来看看它和日志有什么关系。 数据集成就是将数据组织起来...

2604
来自专栏HappenLee的技术杂谈

数据系统的未来------《Designing Data-Intensive Applications》读书笔记17

对于任何给定的数据问题,总会有多种解决方案。所有这些解决方案都会有不同的优缺点和权衡。因此,最合适的软件工具选择也要视情况而定。每一个软件,甚至一个所谓的“通用...

522
来自专栏企鹅号快讯

干货!大数据专业词汇整理,不知道容易被别人喷晕!

随着大数据技术的不断提高,大数据应用的不断普及,大数据与各行各业的关系越来越紧密。大数据行业充斥着大量的专业词汇,准确掌握和了解这些词汇的含义,有助于更好的理解...

1826

扫码关注云+社区