写点什么

SQL Server 现在提供 NoSQL 风格的内存优化表了

  • 2016-03-31
  • 本文字数:942 字

    阅读完需:约 3 分钟

SQL Server 2014 引入的内存优化表没有写入锁,可以避免磁盘 I/O,支持完全编译存储过程,与传统表相比,显著地提升了性能。但是,它也有许多限制,包括无法使用备受 NoSQL 设计风格青睐的大文档。

在 SQL Server 2016 中,其中许多限制已经接触。首先是在内存优化表本机编译存储过程中支持 LOB 类型。这意味着用户可以使用 varChar(max)、nVarChar(max) (都可以包含 XML 和 JSON 数据)和 varBinary(max)。8060 字节的行大小限制也解除了,即使对于没有包含 LOB 类型的宽表也是如此。

尽管如此,如果可能的话,微软并不建议使用这个特性。如果可以将所有的数据都存入 varChar(8000) 或者更小的列中,而不是 varChar(max) 中,那么就可以避免写入时访问存储大对象的隐藏表的开销。

内存优化表约束

内存优化表的另一个限制是不能创建约束(除了唯一主键)。从应用程序设计的角度来说,这不是绝对必要的,但约束确实降低了多种数据冲突类型发生的可能性。

  • 内存优化表之间的 FOREIGN KEY 约束
  • CHECK 约束
  • UNIQUE 约束

注意,普通表和内存优化表之间的外键约束还不允许。

本机编译存储过程改进

熟悉这个术语的人都知道,一个“本机编译存储过程”在创建时就被编译成了高度优化的机器代码。它只能操作内存优化表,但与普通的存储过程相比(在运行时解释),显著地提升了性能。

除了支持 LOB 类型外,用户可以在 INSERT、UPDATE 和 DELETE 语句中使用 OUTPUT 子句。这可以减少对单独查询的需求,反过来,这可能减少事务及相关锁定需求。

现在,本机编译存储过程还提供了其他标准 SQL 特性,包括:

  • UNION 和 UNION ALL
  • SELECT DISTINCT
  • OUTER JOIN
  • SELECT 语句中的子查询(EXISTS、IN、标量子查询)

本机编译函数

现在,用户可以本机编译标量函数。要这样做的话,用户需要使用WITH NATIVE_COMPILATION、SCHEMABINDING 作为指令,并将具体的代码封装进一个BEGIN ATOMIC 块中。这与本机编译存储过程不同,后者仅使用WITH SCHEMABINDING 指令标记。

本机编译触发器

让我们继续这个话题,如果使用了WITH NATIVE_COMPILATION,那么AFTER 触发器现在可以置于内存优化表上了。

要了解更多信息,可以查看 SQL2016 CTP3 新特性自CTP3 以来SQL Server 2016 中的内存OLTP 新特性

查看英文原文: SQL Server Now Offers NoSQL Style Memory-Optimized Tables

2016-03-31 19:002489
用户头像

发布了 1008 篇内容, 共 402.9 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

跟着核心开发者聊聊大模型应用、框架开源那些事儿

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

揭秘|来看看袋鼠云数栈内部的资产血缘方案设计与实现

袋鼠云数栈

数据资产 数据血缘

Python案例实现|爬取租房网站信息

TiAmo

Python 数据分析

携手生态共筑数智底座,加速企业数智化转型

用友BIP

数智底座

软件测试/测试开发丨Linux 三剑客与管道使用

测试人

Linux 程序员 软件测试

中小企业建设数字化工厂,选择集成老路还是整体重构?

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

浅议实时操作系统RTOS

DevOps和数字孪生

RTOS 实时操作系统

软件测试/测试开发丨Python 面向对象编程思想

测试人

Python 编程 面向对象 软件测试

什么是低代码开发平台?浅谈它的价值

高端章鱼哥

低代码 aPaaS JNPF

DevSecOps:软件安全捍卫者

DevOps和数字孪生

DevSecOps

4种大文件传输的方式?适用设计类企业的文件传输方法

镭速

大文件传输

java面试题-多线程

程序员小张

构建网站利器!体验高速稳定的香港云主机服务!

一只扑棱蛾子

云主机 香港云主机

EDS从小白到专家丨打造你的专属“数据物流”系统

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

【网易云信】直播场景播放侧常见问题分析与实践经验

网易智企

直播 实时音视频 直播推流 音视频技术

混战源起ChatGPT,中国的AI产业怎么样了? | 社区征文

向阳花

人工智能 AI 马斯克 前沿技术 年中技术盘点

【参考设计】100 W USB PD 3.0电源

元器件秋姐

设计 电路 方案 usb 电源

使用 Postman 批量发送请求实用教程

Liam

Java 后端 开发 Postman API

语音聊天app源码中,技术性和功能性并存,技术和功能层面的细节考虑有哪些?

山东布谷科技胡月

语音聊天APP源码 语音直播app开发 国际多语言设计app开发 语音社交平台搭建

网络带宽利用率不够?这些大数据传输解决方案来帮你

镭速

数据传输 大数据传输

柏睿数据作为湖仓一体数据平台代表厂商入选IDC报告

新消费日报

MQTT 订阅选项的使用

EMQ映云科技

mqtt 订阅选项

简化办公,云上助力!

知者如C

智能制造之路—从0开始打造一套轻量级MOM平台

EquatorCoco

数字化 智能制造

点云标注在自动驾驶中有着广泛的应用案例

来自四九城儿

五种高级 NodeJS 技术

互联网工科生

node.js nodejs

【网易云信】直播场景播放侧常见问题分析与实践经验

网易云信

直播 实时音视频 音视频开发 直播推流

得物 Android 包体积资源优化实践

得物技术

前端 用户体验 SEO

汽车软件的模糊测试

DevOps和数字孪生

软件定义汽车

成都站|阿里云 Serverless 技术实战营邀你来玩!

Serverless Devs

云计算 负载均衡 Serverless 云原生 弹性计算

SQL Server现在提供NoSQL风格的内存优化表了_.NET_Jonathan Allen_InfoQ精选文章