今天在读<Oracle高级SQL编程>这本书的时候,在关于Oracle的全局索引的章节里面有一段讲到如果对一张分区表创建一条唯一索引,而索引本身也是分区的,那就必须把分区列也加入到索引列表中去,当然不一定要再第一列.后来自己就去SQL Server上也试了一下.果真和Oracle一样的道理.再看到后面章节算是理解了.因为如果表被分区了,其实就是每个分区等于一个索引树了.这也就是为什么在SQL Server下这张sys.partitions系统视图中每个partition对应了一个hobt_id…
在生产环境中会遇到这样的场景,一个表随着时间的推移,越来越大,这个时候我们开始动手为这个表建立分区来改进查询性能. 但是表过大上百个G的时候,在数据仓库中,为了改进查询性能,我们可以添加在分区表的基础之上添加ColumnStore Index, 添加后,瞬间让10分钟的查询变身成几秒钟, 这是真实的. 但是,当新的一年开始了,需要为这个大表添加新的分区,却是一件很耗时的事情,有一些坑,需要避免: 1. 在建立分区之初,如果按时间划分,则应该一次加上5-10年的,因为后续修改很麻烦 2.  在有C…
附加mdf文件不出意料会提示数据库格式无法兼容,试着通过脚本来创建,会有以下错误提示: Could not find stored procedure 'sp_dboption'. 原因是SQL Server 2012不再支持sp_dboption存储过程,解决办法也很简单. 把下面两句注释或者删除 exec sp_dboption 'Northwind','trunc. log on chkpt.','true' exec sp_dboption 'Northwind','select int…
背景知识: 分区表.可以把表中的数据按范围保存到不同的文件组中. 举个例子吧: 2014年以前的数据保存到文件组A 2014~2015的数据保存到文件组B 2015年以后的数据保存到文件组C 好处: 1.提高IO性能 --- 文件组中的文件可以位于不同的磁盘,多磁盘协同工作,提升性能. 2.方便管理 --- 备份方面为管理提供了更多的选择,数据归档方便. 前期准备:添加文件组与文件 alter database Studio             add filegroup FG1;     …
<single_partition_rebuild_index_option> ::= {     SORT_IN_TEMPDB = { ON | OFF }   | MAXDOP = max_degree_of_parallelism   | DATA_COMPRESSION = { NONE | ROW | PAGE | COLUMNSTORE | COLUMNSTORE_ARCHIVE} }   | ONLINE = { ON [ ( <low_priority_lock_wait…
原文:开始使用 Docker (Linux 上运行 SQL Server) 上的 SQL Server 容器 - SQL Server | Microsoft Docs 快速入门:使用 Docker 运行 SQL Server 容器映像Quickstart: Run SQL Server container images with Docker 2019/01/10 作者 Choose your command shell BashPowerShell 适用于: SQL Server (仅限 L…
创建唯一聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引. 主键列不允许空值. 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以指定唯一聚集索引. 有关详细信息,请参阅 Unique Constraints and Check Constraints…
Columnstored index是SQL Server 2012后加入的重大特性,数据不再以heap或者B Tree的形式存储(row level)存储在每一个数据库文件的页里面,而是以列为单位存储.加上本身数据在存储到磁盘的时候是经过压缩算法压缩过后存储的,对于存储空间有很大的节省.各个特点非常适合数据库仓库型数据库,尤其是星状结构的设计(Dimension + Fact). 各个版本的特点和差异: SQL Server 2014 1)聚集列存储索引,可更新,但是不能再创建其他的索引 2)…
概述 SQL Server 2014被号称是微软数据库的一个革命性版本,其性能的提升的幅度是有史以来之最. 可更新的列存储索引作为SQL Server 2014的一个关键功能之一,在提升数据库的查询性能方面贡献非常突出.据微软统计,在面向OLAP查询统计类系统中,相比其他SQL传统版本的数据库,报表查询的性能最大可提升上十倍. 下面我们从存储的角度来了解下SQL Server 2014的可更新列存储索引. 什么是列存储 微软为了提升SQL Server的查询性能,更好的支持大数据分析,早在SQL…