`
ruilinruirui
  • 浏览: 1056692 次
文章分类
社区版块
存档分类
最新评论

使用WITH AS 优化SQL

 
阅读更多

马上就要单身节了,正在想今年我去祸害谁家的姑娘,突然QQ好友发来信息,说能否帮忙优化一个SQL,SQL调优做得实在太多了,都已经麻木了,反正优化一个SQL也就几秒钟到几分钟的事情。

哥们说下面的SQL要跑5个多小时


下面是执行计划以及表信息

有经验的人一看,一眼就知道这个SQL性能问题出在这里

你一定要注意看,前面的NOT EXISTS 里面套了 2个 != 尼玛,坑爹啊,神马业务逻辑啊,这个SQL太坑爹了,由于有!=的存在,CBO不能选择 HASH_AJ join的方式,只能走FILTER,哈哈,走FILTER绝对搞死人,不是吗?因为它要反复扫描 DW_BO_ORDER 非常多次,那么我建议那哥们把SQL改了,把里面的!=拆分,不过可惜的是,不管他怎么拆分,SQL业务逻辑总是不对,尼玛谁叫我们写SQL水平菜呢(自我批评一下)

于是建议他用下面的方法改写SQL


执行计划和SQL执行时间如下:


现在SQL 12秒可以跑完了,这个SQL优化到这里就行了,不能连接他的DB,妈的我业务逻辑也不清楚,奶奶的,神马时候帮别人优化一个SQL 一行一元。



分享到:
评论

相关推荐

    SQL Server中with as使用介绍

    一.WITH AS的含义   WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,...如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果

    sql with as用法详解

    一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很...如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一

    Hive sql优化

    从数据倾斜,jvm重用,语句编写等方面对hive查询进行优化。

    微软内部资料-SQL性能优化2

    Although 2 GB of address space may seem like a large amount of memory, application such as SQL Server could leverage more memory if it were available. The boot.ini option /3GB was created for those ...

    微软内部资料-SQL性能优化3

     Differentiate locks, latches, and other SQL Server internal “locking” mechanism such as spinlocks and other synchronization objects. Recommended Reading  Chapter 14 “Locking”, Inside SQL ...

    Inside_the_SQL_Server_Query_Optimizer

    It's packed with features such as code completion, script summaries, and SQL reformatting, that make working with SQL a breeze. •Code-completion and SQL snippets •Backwards compatibility •SQL ...

    微软内部资料-SQL性能优化5

    Just as the organization of a telephone directory makes it easy for a person to search, SQL Server quickly searches a table with a clustered index. Because a clustered index determines the sequence ...

    PL/SQL Developer 6.05注册版-1

    SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...

    SQL培训第一期

    1 SQL基础 1.1 基本概念 结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行...

    PL/SQL Developer 7.1.5 注册版-3

    SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...

    关于SQL中CTE(公用表表达式)(Common Table Expression)的总结

    一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很...如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一

    PL/SQL Developer 7.1.5 注册版

    SQL Exporter did not export very old dates in date format - SQL Exporter could export floats with comma as decimal separator <br>PL/SQL Developer主要特性: PL/SQL编辑器,功能强大——该编辑器...

    存储过程的安全及性能优化

     优化SQL语句  避免频繁访问同一张或多张表,尤其是数据量大的表  尽量避免大事务操作  尽量避免使用游标,游标效率很差,如果使用游标就不要在游标的循环中使用表连接操作  注意where语句的写法,应该...

    SQL sever 实训

    --使用IF UPDATE(column)尽可能优化上题的触发器,以提高系统效率 ALTER TRIGGER UPDATE_ProNo_Stocks_TRIGGER ON Product FOR UPDATE AS IF UPDATE (ProNo) PRINT '已更新' GO --单元十三 游标 --创建存储过程...

    Mastering The Faster Web with PHP, MySQL, and JavaScript 1st pdf

    Along the way, you will learn how to profile your PHP scripts with Blackfire.io, monitor your Web applications, measure database performance, optimize SQL queries, explore Functional JavaScript, boost...

    sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】

    代码如下: –代码一DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER BY SortNum DESC) AS RowIndex INTO #tb FROM news WITH(NOLOCK) WHERE NewsTypeId=@NewsTypeId AND IsShow=1 SET @cc = @@ROWCOUNT ...

    sql server递归子节点、父节点sql查询表结构的实例

    WITH dept AS ( SELECT * FROM dbo.deptTab --部门表 WHERE pid = @id UNION ALL SELECT d.* FROM dbo.deptTab d INNER JOIN dept ON d.pid = dept.id ) SELECT * FROM dept 二、查询当前部门所有上级部门...

    SQL Server 树形表非循环递归查询的实例详解

    很多人可能想要查询整个树形表关联的内容都会通过循环递归来查…事实上在微软在SQL2005或以上版本就能用别的语法进行查询,下面是示例。 --通过子节点查询父节点 WITH TREE AS( SELECT * FROM Areas WHERE id = 6 ...

    High Performance MySQL

    We wanted a book that wasn’t just a SQL primer. We wanted a book with a title that didn’t start or end in some arbitrary time frame (“...in Thirty Days,” “Seven Days To a Better...”) and didn’t...

Global site tag (gtag.js) - Google Analytics