首页 >>  正文

oracle批量查询

来源:baiyundou.net   日期:2024-09-21

数据库,作为三大基础软件技术之一,是企业IT系统必不可少的核心技术。

但纵览整个数据库技术的主要创新史,却一直距离我们颇为“遥远”。无论是20世纪后期,由Oracle、IBM和微软构建的商业数据库“帝国”,还是2000年后,以MySQL、PostgreSQL为代表的开源数据库崛起,中国的数据库技术都没有能够站在行业“主赛道”。

而伴随着云时代的呼啸而来,以腾讯云数据库 TDSQL代表的云数据库开始崭露头角。凭借高可靠、高可用、高性能,高弹性、自动化智能部署与运维等优势,逐渐被企业用户广为认可,也打开一个新的时代。

01

中国云数据库崛起

传统商业数据库,源于对系统稳定性的第一诉求而构建出一套集中、专用、封闭的稳态技术体系。但随着时代的演进,传统数据库的弊端也逐渐显现。如移动互联网、物联网产生海量数据,要求数据库有更高的扩展性,但传统数据库扩容极慢,仅仅规划就需要半年时间,更不要说商业数据库昂贵的服务成本。

这就让能够满足行业关键应用的高扩展性、高性能、高可用性及软硬件解耦等特性的分布式数据库需求激增,也催生云数据库的快速发展。

实际上,金融等大行业对商业数据库应用已历几十年,对商业数据库提供的稳定的表现也有相当的依赖。切换一个数据库产品,往往涉及复杂的应用改造、业务切割,可能存在业务风险影响,这让很多行业用户对数据库的迁移总是徘徊不前。

但2022年9月国资委79号文件要求:截止到2027年“2+8+N”党政与八大行业完成100%国产替代,其中就包括数据库的国产化,政策的驱动成为了激发中国数据库技术创新的外部推力。

而从技术角度,云数据库明显要比传统数据库更适应数字化时代的业务发展要求。同时,基于虚拟化技术的云,资源是松耦合的,资源池化之后,可以按需按量使用、弹性调度,云数据库可以根据业务需要对计算、存储进行快速的扩缩容,让企业更有效地使用资源,而越是规模化的应用,为企业带来的价值就越大。

中国云厂商的云数据库也在此过程中,通过技术积累一步步走到赛道中央,如腾讯云TDSQL分别 在 2020年和2022 年进入Gartner数据库魔力象限,证明了其已成为世界领先的数据库产品。今年3 月 30 日,国际事务处理性能委员会(TPC,Transaction Processing Performance Council)发布了最新榜单:腾讯云数据库 TDSQL 刷新纪录,以 8.14 亿的 tpmC 和每 tpmC 成本1.27 元人民币的评测成绩,实现 tpmC 和性价比双榜世界第一。 进一步验证了其已经具备主流数据库的潜质。

02

谁是最好的HTAP分布式数据库?

数据库技术从来不是永恒不变,而是伴随着企业业务量的壮大,而不断的刷新。

云时代,最典型的业务均来自于互联网,比如餐饮行业迎来了外卖大爆发,面对潮水般涌来的订单,系统很容易就会走向崩溃;大型商业银行的信用卡系统,MySQL 分库分表架构已无法应对数据库的暴增与应用的快速变迁;新零售、智能制造企业中的门店销售经理希望当天就能从系统里查到销售报表,而不是月底……

诸多行业都面临着数据库带来的挑战,可以解决高并发、大数据场景下业务需求,并且可以横向扩容的分布式数据库成为了解决痛点的突破口。同时,对AI技术的渴求,又让数据分析的需求自然高涨,但同时部署一套数仓或者大数据架构又显得成本过于高昂。

因此,既能满足高并发的在线交易型数据处理,又能满足业务的实时数据分析的需求的HTAP云数据库应运而生。

2022年5月,Google Cloud 发布了主打HTAP的云端数据库 AlloyDB;同年6月,Snowflake发布了主打HTAP 的Unistore,加上之前Oracle MySQL Heatwave,微软Azure 、AWS 、腾讯云和阿里云的HTAP 产品,所有热门云厂商到2022年中都开始下注HTAP,Gartner甚至说 HTAP已经成为进入云数据库市场的筹码。

作为一个成熟的HTAP云数据库,要满足隔离、性能、易用、实时几大特性,腾讯云TDSQL是如何实现的呢?

TDSQL HTAP - 架构

首先,TDSQL是通过采用了松耦合的架构去实现HTAP的能力,这样即可实现可插拔式的加速分析、降低成本。又确保了不同负载的隔离性,同时还可以兼顾TP 与AP的极致性能。

其次,通过扩展列式存储、向量化分析引擎、分布式MPP计算等技术加速用户复杂SQL执行,来保证性能。

第三,利用可插拔式分析引擎与可选择式对象加速能力,不仅可有效降低数据库成本,还通过智能路由SQL,让开发从SQL调优中解放出来,降低使用难度,达到最佳的易用性。

最后,在实时性方面,TDSQL通过底层数据实时同步机制,可支持数据实时从行存引擎更新到列存引擎中。同时在列存引擎中加入了提升数据更新效率的优化措施,进一步确保数据一致性。

很明显,具备了这四点特性的HTAP 架构,能够提升业务的应用边界。比如在ERP、审核交易、SaaS类等拥有着混合负载的场景,数据库将会自行处理各类查询请求,自动均匀负载,并提升性能;而在金融行业中的数据跑批、会计日切、报表统计、业务风控等业务批量处理场景,和数据分析类场景,都有显著的性能提升。

特别要提到的是,腾讯云TDSQL已经完成了全国产化适配,在国产芯片、国产操作系统场景的全国产场景下,也能够完美的释放数据库性能,帮助企业利用好计算资源。

03

谁在代表中国数据库的创新?

谈到了国产化,我们也可以从目前国产化替代的角度,再来审视一下腾讯云TDSQL的能力。

根据IDC数据,2022年上半年,在国内关系型数据库市场中,Oracle、微软、SAP、IBM份额总和近45%。在金融、电信等重点行业,由于业务系统要求复杂,国外数据库份额仍然较高。以金融行业为例,国外厂商占据90%以上的份额。其中,Oracle以其稳定性、功能黏性、服务保障体系完善性占据大比例市场份额,而DB2以一体机捆绑销售方式,也根植于银行现有数据库体系中。

所谓“去O”化的进程,持续几乎10年有余,国产数据库仍然未能对Oracle等商业数据库形成有效替代。

究其根本,仍然是创新力不够。除了替换,能够为企业提供未来 IT 架构去支撑业务发展,是国产数据库应该走的路。在这一点上,腾讯云TDSQL的表现的确可圈可点。

近期,腾讯云发布了TDSQL融合版,它是否能够代表极致HTAP去O的中国力量?

据了解,TDSQL融合版整合了之前TDSQL系列产品内核的优势,并在内核架构、Oracle兼容能力、性能、隔离、迁移工具等多个关键能力上进行了大幅增强优化,从原有的全量70%提升到全量85%,金融行业更是兼容度高达98%

不仅内核级支持大量Oracle语法兼容能力,配套迁移评估和迁移校验工具TMT,实现原oracle业务的平滑迁移,而且全面拥抱国产信创生态,支持国产上下游软硬件,包括国产os,芯片;再者,数据库技术自主可控,代码自研率高,通过相关机构测试,完全符合数据库国产化需求。

有几项关键能力值得我们关注:

其一,架构灵活,内核能力全面,可满足各类企业无后顾之忧。

在内核与迁移方面,TDSQL融合版内核能力更加全面,不仅支持单机、集中式、分布式架构混合部署和统一管控,以及行存表、列存表以及行列混存/混查,还支持 Oracle/PG双模式,同时配套迁移评估和迁移校验工具TMT,可以帮助企业实现原业务的平稳迁移。

其二,三个层面的Oracle兼容能力,不仅兼容,甚至超越

在兼容方面,TDSQL融合版以内核兼容为基础,打造了驱动、工具、内核三个层面的Oracle兼容能力。其中,驱动可兼容JDBC、ODBC、OCI、Pro*C,工具则整合了TDSQL Migration Toolkits(评估、迁移、验证)能力,内核可兼容Oracle语法与功能。实际上,TDSQL已通过核心框架和计算架构的升级重构,并对性能实现细节打磨,综合性能已提升2倍以上,性能指标处于行业第一档。

其三,资源隔离自适应,让迁移更平滑无感。

在隔离方面,TDSQL融合版可以帮助企业创建OLTP、OLAP独立的资源池,资源池能够根据业务负载动态调整资源配比、自动调整参数设置,还可支持逻辑多租户,并根据CPU、内存或并发度隔离业务,确保业务之间互不影响。

其四,持续完善的迁移解决方案,产品+服务让客户放心

不仅有好产品,更有好服务!腾讯云TDSQL团队,凭借丰富的经验,形成了完善的迁移流程,通过不同的工作小组,将流程中的架构设计、割接与迁移、开发规范和运维工作形成了一套一站式的完整解决方案。目前,腾讯云TDSQL已服务了TOP10银行中的7家,助力30余家金融机构进行了核心系统改造。

过去国产数据库,我们习惯了听到“替代”和“可用”,却很少能够听见“好用”和“创新”,而腾讯云TDSQL传递给我们的信息,正是不仅仅是“兼容”和“替代”,更是大幅增强、优化和升级。有什么样的志向,就有什么样的回报。

谁能代表中国云数据库的创新力量?答案似乎已不言而喻。

","gnid":"93a7c299a4d9f1807","img_data":[{"flag":2,"img":[{"desc":"","height":"608","title":"","url":"https://p0.ssl.img.360kuai.com/t016bd66dddb64fd3e7.jpg","width":"1080"},{"desc":"","height":"359","title":"","url":"https://p0.ssl.img.360kuai.com/t014904688ae8e8a264.jpg","width":"1080"},{"desc":"","height":"510","title":"","url":"https://p0.ssl.img.360kuai.com/t01e400e4ac1ff55550.jpg","width":"1080"},{"desc":"","height":"407","title":"","url":"https://p0.ssl.img.360kuai.com/t01fc02f64b71af71fb.jpg","width":"1080"},{"desc":"","height":"490","title":"","url":"https://p0.ssl.img.360kuai.com/t01373b9621e1e50259.jpg","width":"1080"},{"desc":"","height":"562","title":"","url":"https://p0.ssl.img.360kuai.com/t011bd8e95310611853.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"hbase","pub_time":1694687220000,"pure":"","rawurl":"http://zm.news.so.com/a8135bfea0b9a7e02478711bd134a6de","redirect":0,"rptid":"0c2f4776b12ba3d6","rss_ext":[],"s":"t","src":"科技象","tag":[],"title":"谁能代表中国云数据库的创新力量?

习河单3651如何用oracle数据库完成4张表的查询啊??求大神告知 -
唐奔宜13160558647 ______ oracle同时查询多张表较为简单,用sql和视图都可以完成,但是oracle查询多张视图就不好做了,要是还有分页和检索的功能就更加蛋疼了,今天老夫遇到了这样的问题,接下来就和大伙分享下://分页的语句 String fenyeSql_1 = "SELECT * ...

习河单3651Oracle 多表联合查询 取最近一条 -
唐奔宜13160558647 ______ select a.id,a.u_name,t.dt,t.yuan from a left join (select id,dt,yuan,row_number() over(partition by id order by dt desc) as rn from b) t on a.id=t.id where t.rn=1

习河单3651Oracle数据库中如何查询一个用户A下面所有的表的信息 -
唐奔宜13160558647 ______ 1、打开pl/sql客户端,登录oracle数据库;2、编写sql,select * from user_tables t where table_name like 'TEST%' order by 1;即可查看该用户下所有的表;3、编写sql,select * from all_tables t;即可查看该库下所有用户所有的表;4、编写sql;select * from user_tab_cols t where table_name like 'TEST%' order by 1, column_id;即可查看该用户下所有表的字段信息;

习河单3651ORACLE 快速查询数据SQL语句 -
唐奔宜13160558647 ______ 单条匹配,没有索引也不准备建索引.只能靠并发来加快检索速度,最快的语句应该是:select /*+ full(A) parallel(A,10) */ * from A where b=c;理由有2:full table scan 时,oracle会一次读出多个block加快速度parallel指定并发10线程检索,当然如果允许,你指定20也可以.最好等于CPU个数. 不过还是建议在b列上建索引,这是最好的办法.

习河单3651oracle中如何将多个查询结果在一张表中显示 -
唐奔宜13160558647 ______ 可以将你的三个表的查询结果使用union all联合起来,然后使用Oracle的decode函数来查询 select 姓名,sum(decode(tbname,'表1',人数,null)) 表1人数,sum(decode(tbname,'表2',人数,null)) 表2人数,sum(decode(tbname,'表3',人数,...

习河单3651oracle 数据库sql 查询语句.通过一个sql语句对多个表分别进行查询. -
唐奔宜13160558647 ______ 用union,举例有S1表(a,b,c,d)和S2表(a,c,d,e)和S3表(f,g),里头的字段不同,但在逻辑上有关系 (如有 s1.b=s2.e s1.a=s3.f s1.b=s3.g) 示例如下: ------------------------------------------------------------------------------ select S1.a as x,S1.b as y,S1....

习河单3651如何查询Oracle中所有用户信息 -
唐奔宜13160558647 ______ 1. 查询oracle中所有用户信息 select * from dba_users;2. 只查询用户和密码 select username,password from dba_users;3. 查询当前用户信息 select * from dba_ustats;4. 查询用户可以访问的视图文本 select * from dba_varrays;5. 查询数据库中所有...

习河单3651如何在oracle中查询所有用户表的表名、主键名称、索引、外键等 -
唐奔宜13160558647 ______ 1、查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表 2、查找表的主键(包括...

习河单3651oracle怎么查询重复数据的个数 -
唐奔宜13160558647 ______ 方法一:可以通过group by 进行分组. sql:select username,count(username) from tablename grop by username; 解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数. 方法二:可以通过distinct函数 进行去重查询. sql:select distinct username from tablename 解释:本sql就是查询出所有的tablename表中的username值(不重复).

习河单3651如何在oracle数据库中查询记录总条数 -
唐奔宜13160558647 ______ 可用两种方法,一种是在oracle的系统表中统计,另一种需要写存储过程统计,方法分别如下. 1、系统表中统计: SELECT sum(num_rows) FROM user_tables;结果: 2、存储过程统计,代码如下: declarev_tName varchar(50);v_sqlanalyze ...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024