SQL Server 2016新特性:列存儲索引新特性

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模式下運行,而且支持併發查詢。
相關文章
相關標籤/搜索