BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

SQL Server 2016:内存优化表变得更易用了

| 作者 Jonathan Allen 关注 610 他的粉丝 ,译者 邱广 关注 0 他的粉丝 发布于 2015年6月18日. 估计阅读时间: 2 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

内存优化表(Memory Optimized Tables)承诺会带来显著的性能提升,但往往很难使用。使用困难很大一部分来源于不能改变它的表schema和索引这一事实。

之前的规避措施是创建一张临时表,把数据复制过来,删除原来的内存优化表,然后创建并且载入新的内存优化表。对以下操作而言没必要再这样做规避了:

  • 改变bucket总数。bucket总数太高会浪费内存,太低则损害性能。
  • 增加和移动索引。请注意在ALTER Table命令之外,无法创建或移动索引。
  • 改变、增加和移动列。
  • 增加和移动约束。

内存优化表通常受限于绑定本地编译存储过程的schema。可以用Schema-bound Dependency图来查看一个给定的ALTER语句是否可行。

请注意ALTER TABLE还有一些涉及workload的附加限制:

在开始ALTER TABLE操作之前,要先暂停workload。任何在开始ALTER TABLE操作之前就启动的用户事务以及对表的访问,都会因序列化验证失败(错误码41325)而导致ALTER TABLE操作失败。

本地编译存储过程

在2016版本中本地编译存储过程也可以更改。当新版本的存储过程在进行编译时,将继续使用原来的版本。一旦编译完成,执行挂起请求,数据库切换到新版本上去。

与表一样,以前更改本地存储编译过程要求在创建新的存储过程之前先删除已有的存储过程。在编译窗口期,这会导致执行失败。

注意这个特性不能用来在正常的本地编译存储过程之间进行转换。

查看英文原文:SQL Server 2016: Memory Optimized Tables Made Easier


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT