· 预计 SQL Server 2008 将支援每个 table 达 30000 个 column
· 搭配 Filtered Index 后可以更有效率
· 提供 Column Set 特殊字段,以 XML 呈现有值的字段
设定过滤条件的索引(Filtered Index)
· 仅增对符合 Where 条件的值建立索引,例如建立索引时,Where 某个字段内容不可 NULL,则 Sparse Column 建出来的索引就小很多。
· 因为是对数据子集建索引,整个数据量少,统计的精确度更高
· sys.indexes 系统检视以 has_filter 和 filter_definition 字段呈现
Change Tracking
· 同步追踪数据变化
· 数据库的 Recovery Mode 不限
· 需要数据表加上代表 row version 的字段
· 当 DML 发生时,会自动记录到系统
Change Data Capture
· 异步追踪数据变化
· 数据库的 Recovery Mode 需 Full
· 与 Transactional Replication 机制类似,都是透过 Log Reader 读出交易纪录,CDC 会将结果放入到系统数据表。若透过 Transactional Replication 将数据表带到目的端,若数据是 1 -> 2 -> 3,则目的端发生两次变化,但若用 CDC,可以选择仅要将 3 带到目的端
FileStream:
· 将大型数据透过 SQL Server 存回调案目录,只能搭配 NTFS
· 让数据的交易管理、安全、备份等机制可以一体设计
· BLOB 不受限于 2G,而是 Windows 系统或硬盘实体大小的限制
· 可以直接透过 Win32 编辑 SQL Server 放在文件系统上的档案,但最好不要
数据压缩
· 以 CPU 换取硬盘与内存空间,由于加载较快,整体时间可能提升
· 分为 Row 和 Page 两种压缩
· 压缩率取决于数据型态和数据内容的重复性,较难一概而论
数据表 Partition 增强
· 可以新的 Date-Only 数据型态当作切割字段
· 增强对多线程的支持
· Partition-Level Lock Escalation,但这有可能导致死结
尚有 T-SQL 的 Merge 语法、Plan Freezing、Star Join 优化等
上文回顾:
SQL 2008 T-Prep 上课心得(一)