`
ding__lin
  • 浏览: 21291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQLLineage.com(SQL优化:列裁剪)

阅读更多

列裁剪是SQL优化中最常见的优化规则,就是对于没有用到的列就没必要读取已减少IO的消耗。

 

为什么出现列裁减?

一、SQL本身就有逻辑问题,包含了与结果无关的数据列:

如:sql1:select a,b from ( select a,b,c from tab1 ) t中SubSelect子查询中的字段c就是可列裁剪的对象。

 

二、为了复用已有的数据模型设计,但实际的需求只需部分数据字段

一个简单分层数仓每个数据层都设计了特定的数据模型,冗余了多个数据字段便于多业务系统复用,数据需要按照数据模型逐层的生产。而现实的情况是冗余字段造成了不必要的计算资源消耗,特别是实时性要求较高的应用场景。

 

http://www.sqllineage.com/demo SQL分析工具提供了列裁剪的功能,即可分析SQL本身存在的裁剪对象,也可以主动选择需要忽略的数据列,从而计算出优化的SQL(目前还在努力实现中)。

 

 

 

优化的SQL计划分为2种模式输出:

1.输入是单条SQL,输出等价的SQL 如文中的sql1等价为 select a,b from tab1 (同时应用了投影消除规则)

2.输入是一组SQL(SQL相互依赖,但无循环依赖)模拟多层的数据生产,绘制DAG图,根据结果的列裁剪需求计算出,每条SQL等价的列裁剪SQL。

如下一组SQL:

sql2: create table ODS_TAB as select a,b,c from TAB

sql3: create table DW_TAB as select a*b as num,c from ODS_TAB

sql4: create table APP_TAB as select sum(num) from DW_TAB

等价为:

sql2: create table ODS_TAB as select a,b from TAB

sql3: create table DW_TAB as select a*b as num from ODS_TAB

sql4: create table APP_TAB as select sum(num) from DW_TAB

当然这些例子过于简单,如果您有更复杂的SQL关系组欢迎提供给我。对工具有任何改进意见也欢迎微信交流。

 

分享到:
评论

相关推荐

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    面对“只进结果集不支持请求的操作”的异常,通过调整查询类型、使用原生SQL或优化数据库连接配置,可以有效避免此类问题,确保应用程序的正常运行。在实际开发中,应根据项目需求和数据库特性灵活选择最合适的解决...

    SQL.SERVER.2008学习笔记:日常维护

    SQL.SERVER.2008学习笔记:日常维护、深入管理、性能优化]

    com.microsoft.sqlserver.jdbc.SQLServerDriver

    标题“com.microsoft.sqlserver.jdbc.SQLServerDriver”涉及的是微软SQL Server数据库与Java应用程序之间的连接驱动。这个驱动程序是Java Database Connectivity (JDBC)的一部分,允许Java开发者通过编写Java代码来...

    maven 下载 sqljdbc4-4.0.jar

    在实际开发中,我们还会使用到诸如连接池(如C3P0、HikariCP等)和数据源(如`javax.sql.DataSource`)等高级特性,以提高应用的性能和可维护性。 总之,`sqljdbc4-4.0.jar`是连接SQL Server数据库的关键组件,通过...

    Microsoft.SQL.Server.2008.学习笔记:日常维护、深入管理、性能优化.part2.rar

    Microsoft.SQL.Server.2008.学习笔记:日常维护、深入管理、性能优化.part2.rar; 中文版; 第二部分(共两部分)

    sqlserver驱动包:sqljdbc4.jar

    4. **SQL执行**:`java.sql.Statement`和`java.sql.PreparedStatement`接口提供了执行SQL语句的能力。`PreparedStatement`允许预编译SQL,提高性能并防止SQL注入攻击。 5. **结果集处理**:`java.sql.ResultSet`...

    Oracle sql优化.pdf

    Oracle SQL 优化 Oracle SQL 优化是指通过调整和优化 SQL 语句、数据库服务器设置和应用程序配置来提高数据库性能的过程。该过程涉及到多个方面,包括 SQL 语句优化、索引优化、数据库服务器配置优化、应用程序...

    SQL优化器相关知识 精品资料.pptx

    SQL优化器相关知识精品资料 SQL优化器是关系数据库管理系统(RDBMS)中负责生成执行计划的组件。执行计划是指数据库管理系统执行SQL语句的详细步骤。SQL优化器的主要职责是根据SQL语句生成最优的执行计划,以便提高...

    MS.SQL.Server.2008.学习笔记:日常维护、深入管理、性能优化.part2.rar

    MS.SQL.Server.2008.学习笔记:日常维护、深入管理、性能优化.part2.rar; SQLServer; 2008; 维护; 管理; 优化; 第二部分(共两部分)

    Oracle高性能SQL引擎剖析:SQL优化与调优机制详解 试读版前146页

    《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》试读版的前146页,涵盖了数据库系统中至关重要的SQL查询优化和调优主题。Oracle数据库是全球广泛使用的数据库管理系统之一,其高效的SQL执行引擎是其核心竞争力...

    藏经阁-CloudDBA 智能诊断平台 如何帮助客户定位和解决问题.pdf

    4. SQL Advisor:SQL 优化建议模块,提供了多种 SQL 优化建议,帮助客户快速优化数据库性能。 5. Log Agent:日志代理模块,负责收集数据库执行日志,用于离线分析和实时诊断。 实时诊断 CloudDBA 智能诊断平台的...

    SQLMonitor

    SQLMonitor是一款专为数据库SQL运行情况设计的监控工具,它虽然体积小巧,但功能强大,对于数据库管理和优化工作来说,无疑是一把不可或缺的利器。本文将深入探讨SQLMonitor的功能特性、使用场景以及如何通过它来...

    sql server学习手册以及t-sql优化方案.zip

    《SQL Server学习手册》与T-SQL优化方案详解 SQL Server 2008作为Microsoft公司的一款企业级数据库管理系统,广泛应用于数据存储、处理和分析。对于任何希望深入理解和掌握SQL Server的人来说,全面了解其基础知识...

    收获,不止SQL优化--抓住SQL的本质1

    - **全书总结**:本书不仅是一本关于SQL优化的技术书籍,更是引导读者进入SQL优化世界的指南。通过丰富的案例、实战经验和深入的技术探讨,帮助读者建立起从宏观到微观的优化思路,并最终达到“爽”的境界。 - **...

    Oracle高级调优全套教程.rar

    第2课:SQL优化简介.pdf 第3课:应用程序跟踪.pdf 第4课:重构SQL基本技术.pdf 第5课:案例分析-星形转换.pdf 第6课:CBO优化程序简介.pdf 第7课:解释执行计划.pdf 第8课:优化程序访问路径.pdf 第9课:优化...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    SQL Server驱动包是用于Java应用程序通过JDBC(Java Database Connectivity)接口与Microsoft SQL Server数据库进行交互的必备组件。本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何...

    Effective MySQL之SQL语句最优化.pdf

    因此,了解如何选择合适的索引列、索引类型、创建和维护索引是优化的关键。 7. 表结构设计优化:良好的数据库表结构设计可以减少数据冗余,提升数据查询效率。例如,使用合适的字段类型、避免使用过大的数据类型、...

    SQL Sever知识点全集解答

    4. 内存优化:利用内存优化表和列存储索引来提升性能。 通过深入理解和实践这些SQL Server知识点,你将能够更有效地管理和维护数据库系统,解决各种挑战。这份《知识点全集解答.sql》文件很可能包含了以上所述内容...

    Oracle性能优化培训文档

    1. 了解SQL:SQL查询是数据库性能的关键,理解其工作原理,包括执行计划、索引的使用和JOIN操作,对于优化至关重要。 2. 体系结构理解:熟悉Oracle的内存结构(如SGA、PGA)和I/O子系统,了解如何配置这些组件以最大...

    SQL语句经典基础进阶完全教程2017

    无论你是一位SQL新手,或是一位只需对SQL复习一下的资料仓储业界的老将,这里将给您提供最完整最经典的SQL教程,它包括: SQL 指令 : SQL如何被用来存储,读取,以及处理...SQL 语法 : 这里列出所有在教材中被提到的SQL 语法.

Global site tag (gtag.js) - Google Analytics