分析函数优化自关联2
2015-08-24 22:22
351 查看
数据库环境:SQL SERVER 2005
今天抓了一条返回数据比较少,但是执行时间相对较长的SQL。返回421行,执行了50S,
说明SQL的执行效率有提升的空间。
我们先来看一下SQL文本
View Code
我们将改写后SQL的执行下,只执行4S钟就全部出结果了。再核对一下数据,和原先的SQL执行出来的结果一致,
说明通过分析函数改写确实提高了SQL的执行效率。
由于在v_ctlm8666_sum的字段fiscal_year、fiscal_period上没有索引,通过在这两个字段上建组合索引,将会对
提升SQL的执行效率有一定帮助。
(本文完)
今天抓了一条返回数据比较少,但是执行时间相对较长的SQL。返回421行,执行了50S,
说明SQL的执行效率有提升的空间。
我们先来看一下SQL文本
/*将内联视图和外部表相同过滤条件的放到with中*/ WITH x0 AS ( SELECT a.dept_id , a.clerk_id , a.item_id , a.dec_sqty , SUM(dec_sqty) OVER ( PARTITION BY a.dept_id, a.clerk_id ) AS dec_sum , a.fiscal_year , a.fiscal_period FROM v_ctlm8666_sum a WHERE fiscal_year = 2015 AND fiscal_period <= 7 AND dept_id LIKE '%' AND clerk_id LIKE '%' AND dept_id IN ( SELECT dept_id FROM v_ctlm1010 WHERE clerk_id = '020123' ) ) /*缩小x0的范围,只取本年度7月份的数据*/ SELECT a.dept_id , c.dept_name , a.clerk_id , d.clerk_name , a.item_id , RTRIM(e.item_name) item_name , a.dec_sqty , a.dec_sum , a.fiscal_year , a.fiscal_period FROM x0 a , ctlm1003 c , ctlm1006 d , ctlm1012 e , ctlm8201 f WHERE a.item_id = f.item_id AND a.dept_id = f.dept_id AND a.fiscal_year = f.fiscal_year AND a.dept_id = c.dept_id AND a.clerk_id = d.clerk_id AND a.item_id = e.item_id AND a.fiscal_year = 2015 AND a.fiscal_period = 7
View Code
我们将改写后SQL的执行下,只执行4S钟就全部出结果了。再核对一下数据,和原先的SQL执行出来的结果一致,
说明通过分析函数改写确实提高了SQL的执行效率。
由于在v_ctlm8666_sum的字段fiscal_year、fiscal_period上没有索引,通过在这两个字段上建组合索引,将会对
提升SQL的执行效率有一定帮助。
(本文完)
相关文章推荐
- Per相关图书推荐
- hdu1213
- 第五 JDBC技术
- ios swift圆形按钮和圆形图标
- spring boot demo( 获取一个RESTful web service)
- MATLAB相关图书推荐
- .Net分布式异常报警系统-简介
- csharp: SDK:CAPICOM
- SQLPLUS使用技巧
- listview异步加载图片并防止错位
- listview异步加载图片并防止错位
- 1001 A + B Problem
- 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可
- listview异步加载图片并防止错位
- Android应用程序的组成部分和Manifest文件(转)
- Hadoop学习2--Linux准备及环境准备
- datastage 7.5.X 问题汇总
- UI_07 UIScrollView、UIPageControl
- 浅谈C++多态性
- 【LeetCode】SingleNumberII_137