数据库-SQL Server 2014 新特性之内存优化表--嘉为科技要领.docVIP

  • 1
  • 0
  • 约2.27千字
  • 约 5页
  • 2017-06-07 发布于湖北
  • 举报

数据库-SQL Server 2014 新特性之内存优化表--嘉为科技要领.doc

SQL Server 2014 新特性之内存优化表 方勇 【摘要】 2013年6月25日,微软发布了 Server 2014 CTP1。本文将为您介绍SQL Server 2014 新特性内存优化表。 如果说SQL Server 2012 数据库引擎的亮点是Always On的话,那么SQL Server 2014 的亮点就是内存优化表Memory-optimized tables)了 内存表 在SQL Server 2000 的年代,我们还可以通过方式,将表驻留在中 DBCC PINTABLE ( database_id , table_id ) DBCC PINTABLE 会导致将表读入到内存中。当表中的页由普通的 Transact-SQL 语句读入到高速缓存中时,这些页将标记为内存驻留页。当 SQL Server 需要空间以读入新页时,不会清空内存驻留页。 但是这种方式在SQL Server 2005 不被支持了内存表这种概念,SQL Server 2014。 文件和存储 优化表必须存储到文件组中, Server 提供了一种MEMORY_OPTIMIZED_DATA?文件组用于的逻辑存储位置。 优化表可以包含一个或多个容器,每个容器有可以包含一个或多个。文件了三种的文件: (Root File):包含了文件和增量文件的元数据 文件(Data File):内存优化表的记录和插入的 增量文件(Delta File日志顺序存储从内存优化表中删除的记录最小信息行号)每个数据文件对应一个增量文件 优化表会使用到日志,同样增删改等操作都会写入日志这是导致使用内存,性能的最大原因,可以考虑使用闪存或者SSD来解决该问题 和机制 SQL Server 2014的优化表让眼前一亮可以改善基于的表的低性能通过的原理机制让我们获得的性能和扩缩性: 数据页和索引页驻留在内存IO瓶颈 采用乐观并发控制,消除了逻辑锁,提高了并发性 效率更高 担心使用内存优化表会不会导致驻留在内存中,系统宕机或者的时候,导致数据无法及时写回内存而丢失。优化表了关系型数据库的特征: 事务持久化:提交DDL或DML更改内存优化表的事务 重启持久化:的状态 介质失败持久化损坏时,我们可以通过的备份和还原来内存优化表到新存储 ,优化表有两种持久化选项其中有一种是不保证持久化的: SCHEMA_ONLY非持久化)只持久化表结构和索引,重启所有数据丢失 SCHEMA_AND_DATA持久化)结构和数据,类似于磁盘的表 我们来分析一下增删改的流程: 操作执行先事务; 操作先到内存中,CheckPoint 的时写回数据文件 操作先内存中删除,并记录行号到文件,记录的删除会合并到数据文件 操作:更新操作在SQL Serer 先删除、然后插入执行 看到,SQL Server 内存表主要改善的是查询性能IO瓶颈。 和软件要求: SQL Server 2014 x64 版中,因为x64版可以直接使用更多的内存空间 必须有足够的,表不能超过最大内存的% 内存优化表语法 表也不是可以随便使用的,也有着其限制条件或约束。 数据库需要有一个内存优化表文件组: CREATE DATABASE CanwayDemo ON PRIMARY(NAME = [hekaton_demo_data], FILENAME = C:\DATA\hekaton_demo_data.mdf, size=500MB) , FILEGROUP [hekaton_demo_fg] CONTAINS MEMORY_OPTIMIZED_DATA( NAME = [hekaton_demo_dir], FILENAME = C:\DATA\hekaton_demo_dir) LOG ON (name = [hekaton_demo_log], Filename=C:\DATA\hekaton_demo_log.ldf, size=500MB) COLLATE Latin1_General_100_BIN2; GO 创建表时创建一个非空的主键,并且必须建立非聚集的Hash索引BUCKET_COUNT参数 Use CanwayDemo Go CREATE TABLE Destination ( col1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 100000), col2 INT NOT NULL, col3 INT NOT NULL ) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA) GO 创建一个本机编译存储过程访问优化表 Use CanwayDemo Go CREATE P

文档评论(0)

1亿VIP精品文档

相关文档