仓酷云

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

[学习教程] SQL基本教程及代码优化(三)

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:19:22 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差1.5.冗余VS第三范式
1.第一范式(1NF)是指数据库表的每列都是不成支解的基础数据项,统一列中不克不及有多个值,即实体中的某个属性不克不及有多个值大概不克不及有反复的属性。表的每行只包括一个实例的信息。普通地说,每一个列只能包括一种寄义,每条数据只能包括一个表数据。

2.第二范式(2NF)请求数据库表中的每一个实例或行必需能够被唯一区域分。普通地说,表必需有主键。(打消部份子函数依附)

3.第三范式(3NF)请求一个数据库表中不包括已在别的表中已包括的非主关头字信息。普通地说,表不该该包含冗余栏位。(打消传送依附)

4.优化目标的冗余:以空间换工夫。削减连接和庞大度。

5.静态化目标的冗余:削减对外纠葛。

1.6.表的程度、垂直支解
1.6.1.程度支解:将表分为多个表。
每一个表包括的列数不异,可是行更少。如保留分歧月份数据的表、按地区分别数据的表。(团结视图手艺、数据转移)

1.6.2.垂直支解:将原始表分红多个只包括较少列的表。
如部排列只用于特定范畴

2.Select语句优化
2.1.毗连查询的优化(Inner/outer/full)
–InnerJoin:两个表都满意毗连前提
–Left[Outer]Join:只需求左边表满意前提
–Right[Outer]Join:只需求右边表满意前提
–Full[Outer]Join:左边表或右边表之一满意前提
–CROSSJOIN:交织毗连,无前提。

2.2.把持查询的行和列数目
–(1)Where(不前往无用的纪录)
–(2)Top/SetRowCount
–(3)得当利用Distinct
–(4)Having
–(5)只管制止利用’*’暗示一切列

2.3.慎用Distinct

2.4.慎用Union
–利用OR或UnionAll取代

2.5.存在性判别
–交换count(*)

2.1.SQLServer2005的排名函数
row_number:前往行序号,序号一连。
例:row_number()over(orderbyscoredesc)asrownumber
?rank:前往每行的排名,排名能够并列,并列排名后的下行排名按次不即是前行加1,即排名不一连。

Dense_rank:前往每行的排名,排名能够并列,并列排名后的下行排名按次即是前行加1,即排名一连。

ntile:将有序分区中的行分发到指定命目标组中。
例:ntile(4)over(orderbyscoredesc)asntile
1Identity()因此我们的方案中要构造这种逆操作。Event_type增加一种FlashBACK_EVENT。这类操作形式与Query_Event相同,都是简单的SQL语句,只是包含了将数据恢复的操作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-10 00:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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