SQL 2008数据仓库可扩展性
2008-09-28 10:06:42 来源:WEB开发网最低限度日志记录只记录回滚所不支持的实时恢复的事务所需的信息,它只在批量日志记录和简单恢复模型情况下可用。当一个最低限度日志记录事务提交时,会发布一个检查点用以将脏数据页面发送到磁盘并截断日志。最低限度日志记录通过提高性能和降低所需日志空间大小,从而极大地改进了大规模INSERT操作。特别是,你必须对目标表使用表锁(TABLOCK)。
在SQL 2005中可以采用最低限度日志记录的操作包括批量导入操作、SELECT INTO 、以及索引创建和重建。SQL 2008将之扩展到INSERT INTO…SELECT FROM T-SQL 操作,它在满足任意以下条件的情况下,将大量记录插入到一个已有的表中:
将记录插入到一个具有集群索引而没有非集群索引的空表
插入到一个没有索引但是可以是非空的堆里面
使用最低限度日志记录INSERT的主要场景是:在特定的文件组上创建一个空表,这样就可以控制数据存放的物理位置。然后使用INSERT INTO…SELECT FROM以一种最低限度日志记录的形式来组装它。这样数据将放置在你所希望的地方,并且只将它写到磁盘一次。
数据压缩
在SQL Server2008中新的数据压缩特性通过以可变长度存储的形式存储固定长度的数据,并减少冗余数据,从而降低了表、索引或其分区的子集大小。能够节省的空间大小取决于架构和数据的分布。我们使用大量数据仓库数据库进行了测试,得到的统计情况是真实的用户数据库的大小最多可以减少87%(7比1的压缩比),但是更多情况下只能降低50-70%(压缩比大约在2比1到3比1之间)。
SQL Server提供了两种压缩类型,如下所示:
行(ROW)压缩能够以可变长度存储格式来存储固定长度类型。所以举例来说,如果你有一个字段数据类型为BIGINT,其固定格式将占据8个字节的存储空间,压缩之后它将使用可变的字节数——从0到8的字节数。由于字段值是以可变长度来存储的,所以在一个记录里每个字段会存储一个额外的4位长度代码。此外,0和NULL值除了这个4位代码之外不占任何存储空间。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接