SQL Server 2016新特性:列存储索引新特性
  1. 行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的。
  2. 非聚集的列存储索引支持筛选条件。
  3. 在内存优化表中可以有一个列存储索引,可以在创建表的时候创建,也可以在之后的alter table语句上创建。之前内存优化表不支持列存储索引。
  4. 聚集的列存储索引可以有多个非聚集行存储索引,之前列存储索引不支持非聚集索引。
  5. 支持在聚集列存储索引上加入主键和外键约束,约束使用btree索引。
  6. 列聚集索引有一个压缩延迟选项,让事务复合收到的影响最小。
 
兼容级别为120,130的数据库性能:
  1. 列存储索引支持读提交快照隔离级别和快照隔离级别。这样可以让查询保持事务一致性,并且不加锁
  2. 列存储索引不需要通过重建索引来清理删除的行,可以通过alter table……reorganize语句来清理
  3. 列存储索引可以在alwayson readable secondary replica中访问。
  4. 为了提升性能,SQLServer在表扫描的时候会为小于8字节的列计算最大,最新,合计,计数,平均值聚合会被pushdown。
  5. 在比较字符串类型的时候,条件会被pushdown来提高查询速度。
 
兼容级别为130的数据库性能:
  1. 新的batch模式支持一下操作:

    • SORT
    • 多个聚合函数
    • Windows 聚合函数
    • Windows用户定义的聚合
    • windows聚合分析函数
  2. 单线程查询可以运行在batch mode
  3. 当访问的数据是行存储或者列存储,内存优化表查询可以在InterOp模式下并行
 
支持:
These system views are new for columnstore:
- sys.column_store_row_groups (Transact-SQL)
- sys.dm_column_store_object_pool (Transact-SQL)
- sys.dm_db_column_store_row_group_operational_stats (Transact-SQL)
- sys.dm_db_column_store_row_group_physical_stats (Transact-SQL)
- sys.dm_db_index_operational_stats (Transact-SQL)
- sys.dm_db_index_physical_stats (Transact-SQL)
- sys.internal_partitions (Transact-SQL)
 
These in-memory OLTP-based DMVs contain updates for columnstore:
- sys.dm_db_xtp_hash_index_stats (Transact-SQL)
- sys.dm_db_xtp_index_stats (Transact-SQL)
- sys.dm_db_xtp_memory_consumers (Transact-SQL)
- sys.dm_db_xtp_nonclustered_index_stats (Transact-SQL)
- sys.dm_db_xtp_object_stats (Transact-SQL)
- sys.dm_db_xtp_table_memory_stats (Transact-SQL)
 
限制:
  1. 当btree索引定义在聚集列存储索引时,MERGE被禁用。
  2. 对于内存优化表,列存储索引必须包含所有的列,也不能使用筛选。
  3. 对于内存优化表,列存储索引只能在InterOp模式下运行,并且支持并发查询。
 
 
     

SQL Server 2016新特性:列存储索引新特性的更多相关文章

  1. SQL Server 2016:内存列存储索引

    作者 Jonathan Allen,译者 谢丽 SQL Server 2016的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstor ...

  2. SQL Server ->> ColumnStore Index(列存储索引)

    Columnstored index是SQL Server 2012后加入的重大特性,数据不再以heap或者B Tree的形式存储(row level)存储在每一个数据库文件的页里面,而是以列为单位存 ...

  3. 解读SQL Server 2014可更新列存储索引——存储机制

    概述 SQL Server 2014被号称是微软数据库的一个革命性版本,其性能的提升的幅度是有史以来之最. 可更新的列存储索引作为SQL Server 2014的一个关键功能之一,在提升数据库的查询性 ...

  4. 在SQL Server 2016里使用查询存储进行性能调优

    作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...

  5. SQL Server 列存储索引概述

    第一次接触ColumnStore是在2017年,数据库环境是SQL Server 2012,Microsoft开始在SQL Server 2012中推广列存储索引,到现在的SQL Server 201 ...

  6. SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

    原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一 ...

  7. SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Row-Level Security(行级别安全控制)

    SQL Server 2016 CPT3中包含了一个新特性叫Row Level Security(RLS),允许数据库管理员根据业务需要依据客户端执行脚本的一些特性控制客户端能够访问的数据行,比如,我 ...

  8. SQL Server 列存储索引强化

    SQL Server 列存储索引强化 SQL Server 列存储索引强化 1. 概述 2.背景 2.1 索引存储 2.2 缓存和I/O 2.3 Batch处理方式 3 聚集索引 3.1 提高索引创建 ...

  9. SQL Server 2016 查询存储性能优化小结

    SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...

随机推荐

  1. js小函数工具

    突然想到建一片文章关于自己所学到的一些小函数,今后需要的时候可以直接当工具使用. 1.获取当前时间小程序. function showTime(){ var show_day=new Array('星 ...

  2. ASP.NET MVC 常用路由总结

    1.URL模式 路由系统用一组路由来实现它的功能,这些路由共同组成了应用系统URL架构或方案,这种URL架构是应用程序能够识别并能对之做出响应的一组URL,当处理一个输入 请求时,路由系统的工作是将这 ...

  3. C#相关FTP操作

    C# 相关 FTP(File Transfer Protocol) 操作 1.获取文件目录 UsePassive:需要设置为false. 使用被动模式,因为客户端防火墙的存在,所以为了确保数据可以正常 ...

  4. 改变字体大小实现自适应之js方案A

    一.元素大小有两种写法 1.写结果:设计师给的移动端页面sketch设计稿一般是750px宽度,在sublime编辑器里,设置cssrem或rem-unit插件为56px的字体大小.做页面时,设计稿是 ...

  5. golang单例模式

    1.定义:单例对象的类必须保证只有一个实例存在,全局有唯一接口访问. 2.分类: 懒汉方式:指全局的单例实例在第一次被使用时构建. 饿汉方式:指全局的单例实例在类装载时构建. 3.实现: (1)懒汉方 ...

  6. phpmyadmin#1045 无法登录 MySQL 服务器

    使用lnmp安装wordpress在登录phpmyadmin数据库的时候诡异的出现了   phpmyadmin#1045 无法登录 MySQL 服务器,解决方法如下: 1 修改root的密码—不可以行 ...

  7. C语言基础三(敲打键盘、寻找资料,循环语句)

    有人在学C语言或者其他语言的时候,大家都会说逻辑思维的硬道理,认为没有逻辑思维的人走不远,那么小编这里借助简单的if...else... 英文解释if(如果),else(否则) ----------- ...

  8. Java基础知识总结--String、StringBuffer、StringBuilder

    1.Java String 类 String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法.在Java中,被final修饰的类是不允许被继承的,并且该类中 ...

  9. Codeforces Round #428 (Div. 2) D. Winter is here 容斥

    D. Winter is here 题目连接: http://codeforces.com/contest/839/problem/D Description Winter is here at th ...

  10. vim设置一个tab为4个空格,设置行号

    这我就再当前用户下,不是root权限.本身是没有.vimrc这个文件的 vim  ~/.vimrc 新建了这个文件 然后在其中输入 保存. 这样设置完就一个tab是4个空格,并且就有行号了.重新打开v ...