仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 771|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之用SQL语句天生带有小计算计的数据集剧本...

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:16:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继利用SQL语句天生带有小计算计的数据集:
测试用户:scott
测试用表:dept,emp
//////////////////////////////////
//检索出必要举行统计的数据集
selectdept.dname,emp.job,salfromemp,dept
whereemp.deptno=dept.deptno;
//////////////////////////////////
//依据部门称号和职位举行汇总,并为每一个部门
天生小计,最初天生算计.
select
decode(grouping(dept.dname),1,算计:,dept.dname)dname,
decode(grouping(emp.job)+grouping(dept.dname),1,小计:,emp.job)job,sum(sal)sum_salfromemp,deptwhereemp.deptno=dept.deptnogroupbyrollup(dept.dname,emp.job);
运转了局以下:
SQL>selectdept.dname,emp.job,salfromemp,d
DNAMEJOBSAL
---------------------------------
RESEARCHCLERK800
SALESSALESMAN1600
SALESSALESMAN1250
RESEARCHMANAGER2975
SALESSALESMAN1250
SALESMANAGER2850
ACCOUNTINGMANAGER2450
RESEARCHANALYST3000
ACCOUNTINGPRESIDENT5000
SALESSALESMAN1500
RESEARCHCLERK1100
DNAMEJOBSAL
---------------------------------
SALESCLERK950
RESEARCHANALYST3000
ACCOUNTINGCLERK1300

已选择14行。

SQL>select
2decode(grouping(dept.dname),1,算计:,de
3decode(grouping(emp.job)+grouping(dept.d
eptwhereemp.deptno=dept.deptnogroupbyrol

DNAMEJOBSUM_SAL
---------------------------------
ACCOUNTINGCLERK1300
ACCOUNTINGMANAGER2450
ACCOUNTINGPRESIDENT5000
ACCOUNTING小计:8750
RESEARCHANALYST6000
RESEARCHCLERK1900
RESEARCHMANAGER2975
RESEARCH小计:10875
SALESCLERK950
SALESMANAGER2850
SALESSALESMAN5600

DNAMEJOBSUM_SAL
---------------------------------
SALES小计:9400
算计:29025

已选择13行。

SQL>
因此,我们的第一个“米”,就是二进制日志binlog必须是rowbased的。在rowbase下,二进制日志binlog同时记录了更新前后的整行记录。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-22 17:27:18 | 只看该作者
大侠们有推荐的书籍和学习方法写下吧。
莫相离 该用户已被删除
8#
发表于 2015-3-15 22:33:40 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
柔情似水 该用户已被删除
7#
发表于 2015-3-8 12:01:07 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
精灵巫婆 该用户已被删除
6#
发表于 2015-2-26 04:27:42 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
第二个灵魂 该用户已被删除
5#
发表于 2015-2-8 20:19:07 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
小妖女 该用户已被删除
地板
发表于 2015-2-3 10:46:42 | 只看该作者
原来公司用过MYSQL自己也只是建个表写个SQL
小魔女 该用户已被删除
板凳
发表于 2015-1-25 16:31:03 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
活着的死人 该用户已被删除
沙发
发表于 2015-1-19 06:31:23 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-22 20:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表