昨天参加微软主办东方瑞通承办的SQL Server 2012新特性的讲座,讲的很不错,可惜时间太短,后面没有前面讲的细。

下面是一些分享笔记

 

当前已有的SQL Server HA关键技术

  1. 数据库镜像: 灾备. 镜像库不可读. ODBC数据源不可,需Ado.net 2.0以上,程序中failover partner=镜像地址.可建snapshot解决不可读. 镜像方式对主服务器性能有影响.
  2. 故障转移群集: 备份机器和主机共用一个存储, cluster方式 备份机器基本闲置, 因此备份机器可以使用较低配置. 必须使用域环境.
  3. 日志传送: 主机定期备份到一个位置, 将log备份拷备到备份机器,对主机性能无影响.  可跨地区.

可在近郊时时备份,国外非时时备份.

小型网络:DNS别名,切换机器.

 

新特性AlwaysOn 集合cluster和mirror的特点, 时时备份数据库. 其中自动页面修复在2008中就已实现. mirror端把完整页给主机,替换坏页.

eg: a 主(读写) a1, b(读) b1,c(读) c1

条件:

1)a,b,c必须在群集(windows装群集,sql server也装群集) a和a1  b和b1  各为一组群集

2)a,b,c 都在域中

3)程序直接连群集名

4)默认不打开,要在配置中修改来启动服务

5)最多4个节点, 需配置listener包含对应的IP地址

 

新特性可灵活配置的启动选项

一直有功能,本次添加了界面.

 

新特性t-sql编辑器

右键->insert

从2008开始即可调出模板,本次增加模板自定义功能.

 

新特性 新的还原选项

增加图形界面指定数据页还原

只读备份,不破坏日常备份序列号

指定时间点

tail-log backup 只备日志文件而不清日志文件, 后续备份不以该备份为基线

production数据库一般15分钟-2小时一次log备份

 

新特性 增强分区特性

从sql server2008 r2 sp1开始支持最多15000个分区,以前只有1000个. 2008 sp2 需执行存储过程sp_db_increased_partition打开开关. 2012直接可以支持.

 

新特性 分布式数据库行为重放工具

在2008 r2里就有,但是相对2012较完善.

 

新特性 列存储

以列方式存储数据.

create table f2 (id int, name varchar(100))

create table f3(id int, name varchar(100))

 

create nonclustered columnstore index idx_f2 on f2(id, name)

create nonclustered index idx_f3 on f3(id,name)

 

select id,name from f2 where id between 100 and 1000  (index scan)

select id,name from f2 where id=1

 

比较执行计划

 

测试结论:

一般查询下,列存储模式的表只index scan, 不如index seek快.

单select count(id) from f2 因为count肯定扫描索引,这样列存储要快.

在通过循环加测试数据时,2012速度明显很慢.具体原因待查.

count什么时效率最高?键值最小的非聚集索引. 聚集索引最慢, *, 非聚集索引最快, int类型比date快(因为int所占空间小)

 

新特性 sequence

create sequence sid start with 1 increment bu 1 maxvalue 100 minvalue 10 catch ...(把...个值算到内存中)

create table tb( id int default next value for sid)

insert into tb values(next value for sid, 'b')

Sequence 不支持事务回滚