三、迁移现有环境到内存优化表
1.内存引擎与高可用特性兼容性
将现有数据库迁移到内存优化表需要充分考虑现有数据库系统的环境,从大的方向来说,内存优化表与一部分SQL Server高可用特性不兼容,比如说,数据库镜像和复制,但其他诸如AlwaysOn可用性组、日志传送、备份还原等高可用特性与内存优化表完全兼容。
2.内存引擎与传统引擎的无缝集成
内存引擎的最小粒度是表,所以仅可以将数据库中的部分表转为内存优化表。内存优化表与磁盘表可以无缝的进行交互,从而可以充分利用这两个引擎的优点。在图7中将内存优化表和磁盘表进行连接操作。
3.内存引擎与表级别特性的兼容性
内存优化表还与其他一些表级别特性不兼容,比如说迁移到内存优化表的表中不能存在计算列、触发器等。微软在SQL Server 2014中提供了一个叫做”内存优化顾问”的工具,该工具可以帮助数据库人员快速找出不兼容内存优化表的部分并帮助完成迁移。下面来看内存优化顾问。
4.内存优化顾问
不是所有的数据都可以无缝迁移到内存优化表中,如果表上存在一些诸如计算列、外键、Default或Check约束的对象时,则无法将现有表迁移到内存优化表中。因此使用微软提供的内存优化顾问可以使得迁移过程更加平滑。
通过SQL Server 2014的SSMS,在需要验证的表上右击,在弹出菜单中选择“内存优化顾问”来打开内存优化顾问,如图8所示。
打开内存优化顾问后,可以利用内存优化顾问找到阻止迁移到内存优化表的问题,如图9所示。
而如果不存在阻止迁移到内存优化表的问题,则可以利用内存优化顾问直接将表和表中的数据迁移到内存优化表中。如图10和图11所示。