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

尽量在SQL中Group

SQL 
阅读更多
对于汇总类型的分析报表,在报表生成时往往需要进行分组聚集运算,如果在数据库中先进行一次分组聚集,能够大大减少取到报表服务器的记录数,加快取数和报表运算的速度。

看如下报表:



这是一个典型的交叉分组报表,其sql有两种写法:

第一种:select 产品,客户,销量 from 购买记录表

第二种:select产品,客户,sum(销量) from 购买记录表 group by 产品,客户

而报表的做法都一样,如下图所示:



分析:

采用第一种做法,不仅仅取到报表服务器上记录数多了,取数速度慢,而且在报表端对购买记录表进行分组运算的时候速度也慢了;

采用第二种做法,数据库虽然要进行分组运算,但是数据库中有索引,运算速度快,且取到报表服务器端的记录数大大减少,取数速度大大加快,因此在报表端进行分组运算的时候只要对很少的记录数进行,报表的运算速度大大加快了。

分享到:
评论

相关推荐

    SQL Server 最佳实践分析器 [免费版]

    我觉得这个是重点,因为只有明白了这些SQL Server操作和管理的最佳实践准则,才能在设计数据库和编写T-SQL脚本时,尽量按照这些Rules来操作,提高SQL Server和应用程序的性能和效率。 其实所有的Rules都在这里...

    SQL Server数据库查询速度慢原因及优化方法

    例如耽搁查询 的排序、连接、扫描和GROUP BY字句同时执行,SQL SERVER根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT, DELETE还不能并行处理。 ...

    SQL Server 2008编程入门经典(第3版)

    6.5.1 在cREATETABLE语句中定义DEFAULT约束 6.5.2 在已存在的表中添加DEFAUIT约束 6.6 禁用约束 6.6.1 在创建约束时忽略无效的数据 6.6.2 临时禁用已存在的约束 6.7 规则和默认值 6.7.1 规则 6.7.2 默认值 6.7.3 ...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    Robert目前是俄勒冈州波兰特市的Huron Consuiting Group的Stockarnp事务所的DBA团队领导人,偶尔也会在数据库开发、商业智能和其他主题方面发表演讲。 其他责任者简介: 杨大川,毕业于美国纽约州立大学布法罗分校...

    SQLServer数据库设计规范.txt

    2.7 SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、...

    老司机总结的12条 SQL 优化方案(非常实用).docx

    (3)解析器/分析器:分析器的工作主要是对要执行的 SQL 语句进行词法解析、语法解析,最终得到抽象语法树,然后再使用预处理器对抽象语法树进行语义校验,判断抽象语法树中的表是否存在,如果存在的话,在接着判断 ...

    SQL性能优化

     在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及ORACLE没有对表进行统计分析的情况下ORACLE会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉。(注:如果对表进行...

    SQL进阶及工作中常用SQL

    1.工作中常用sql排行 ①group by(用来聚合也时常用来去重注意用groupby select 后要跟聚合字段) ②where(SQL计算之前进行过滤,对性能是极大的提高,代码测试阶段where条件下尽量跟分区) ③having(SQL计算之后进行过滤...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    Robert目前是俄勒冈州波兰特市的Huron Consuiting Group的Stockarnp事务所的DBA团队领导人,偶尔也会在数据库开发、商业智能和其他主题方面发表演讲。 其他责任者简介: 杨大川,毕业于美国纽约州立大学布法罗分校...

    SQL查询语句优化的实用方法总结

    1、在表中建立索引,优先考虑where、group by使用到的字段。 2、尽量避免使用select *,返回无用的字段会降低查询效率。如下: SELECT * FROM t 优化方式:使用具体的字段代替*,只返回使用到的字段。 3、尽量避免...

    12样(12yang)团购系统 v1.2 SQL版.rar

    12样(12yang)团购系统是一套Groupon模式的开源团购程序,开发的一套网团购程序,系统采用ASP SQL开发的团购程序,安装超简,功能超全面,在保留12样团购系统版权的前提下,允许所有用户免费使用。12样团购系统内置...

    SQL开发几个实用规则

    SQL语句尽可能简单 保持事务(连接)短小 尽可能避免使用SP/TRIG/FUNC 尽量不用 SELECT * 改写OR语句 避免负向查询和% 前缀模糊查询 减少COUNT(*) LIMIT的高效分页 用UNION ALL 而非 UNION GROUP BY 去除排序 同数据...

    12样(12yang)团购系统 v1.2 SQL版

    12样(12yang)团购系统是一套Groupon模式的开源团购程序,开发的一套网团购程序,系统采用ASP+SQL开发的团购程序,安装超简,功能超全面,在保留12样团购系统版权的前提下,允许所有用户免费使用。12样团购系统内置...

    PHP面试大全-高级篇

    在 SQL 查找中,我们可以使用函数来查找表中的所有员工。例如,下面是一个使用函数查找所有员工的示例代码: ```sql DELIMITER $$ DROP FUNCTION IF EXISTS serch_user; CREATE FUNCTION serch_user(dept_id INT) ...

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

     扩展存储过程是SQL Server中的另一类存储过程,它是以其它语言编写的外部程序,是以动态链接库(DLL)形式存储在服务器上,最终SQLServer就可以动态加载并执行它们  编写好后使用SQLServer的固定角色sysadmin...

    优化数据库的方法.doc

    优化数据库的方法 1、关键字段建立索引。 2、使用存储过程,它使SQL变得更加灵活和高效。 3、备份数据库和清除...用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。 2、IS NULL 与 IS NOT NULL 不能用nul

    SQL优化_数据库_提高表的查询效率

    创建表时能使用数值型的尽量不用字符型,因为字符型比较需要逐个char进行比较,而数值型只需要比较...使用复合索引时应符合最佳左前缀规则,sql语句的执行顺序为from on where group by having select order by,例如s

    ZabbixWebSortPlugin.zip

    所有数据来自 MySQL,在监控项较多的情况下,SQL 压力很容易导致 zabbix-web 直接无响应。同时,过多的图片也并不适合快速比对。对此,设计了 sort 插件。其作用是,对选定的 hostgroup 和 item 项,将所属的 host ...

Global site tag (gtag.js) - Google Analytics