昨天参加微软主办东方瑞通承办的SQL Server 2012新特性的讲座,讲的很不错,可惜时间太短,后面没有前面讲的细。
下面是一些分享笔记
当前已有的SQL Server HA关键技术
- 数据库镜像: 灾备. 镜像库不可读. ODBC数据源不可,需Ado.net 2.0以上,程序中failover partner=镜像地址.可建snapshot解决不可读. 镜像方式对主服务器性能有影响.
- 故障转移群集: 备份机器和主机共用一个存储, cluster方式 备份机器基本闲置, 因此备份机器可以使用较低配置. 必须使用域环境.
- 日志传送: 主机定期备份到一个位置, 将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 不支持事务回滚