理解Oracle Exadata中的Smart Scan功能

日期: 2012-02-21 作者:Shyam Varan Nath翻译:孙瑞 来源:TechTarget中国 英文

经过多年的发展,存储技术以及CPU的计算能力得到了很大的提升。然而在大型的数据库系统中,这两方面之间的互连依旧是困扰所有DBA的难题。因此,海量数据所需要的计算节点或者数据库引擎能够缩减的话,那么系统性能就能够表现的更好。举例来说,当数据库用户需要基于销售数据寻找所有重要的客户时,我们会这样写SQL: SELECT customer_name, sales_amt FROM customer_sales WHERE sales_amt >500;   在传统的Oracle数据库中,上面的SQL语句将需要系统对custo……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

经过多年的发展,存储技术以及CPU的计算能力得到了很大的提升。然而在大型的数据库系统中,这两方面之间的互连依旧是困扰所有DBA的难题。因此,海量数据所需要的计算节点或者数据库引擎能够缩减的话,那么系统性能就能够表现的更好。举例来说,当数据库用户需要基于销售数据寻找所有重要的客户时,我们会这样写SQL:

SELECT customer_name, sales_amt FROM customer_sales WHERE sales_amt >500;

  在传统的Oracle数据库中,上面的SQL语句将需要系统对customer_sales表进行一个完全的扫描。所有数据块将通过网络被送到数据库计算节点上,其中将涉及谓词过滤。而当使用Oracle Exadata的Smart Scan时,通过添加一系列的机制,查询谓语将下推到存储子系统中。使用智能数据库协议(iDB),数据库节点会将查询细节发送到存储子系统,最重要的是只有信息中的相关片段被发送到互连。在我们的例子中,只有ustomer_name和sales_amt列通过互连进行传送,其中sales_amt超过$500.这就是Smart Scan所起到的作用,它能够减少非相关数据传输所造成的延时。

  Smart Scan的最佳实践包括不使用索引,允许基于代价的SQL优化器(CBO)做决策,依靠自然的用户应用。因此,我们建议使用Smart Scan时,将所有SQL语句中的hint去掉。

翻译

孙瑞
孙瑞

相关推荐