写点什么

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:002844
用户头像

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

关注

评论

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

第十四届中国智能产业大会,藏着AI落地的答案

脑极体

AI

flywa报错Detected resolved migration not applied to database: 20221103.10000

刘大猫

人工智能 算法 数据分析 智慧城市 智慧家居

Claude用不了?火山引擎为开发者上线“搬家”方案

火山引擎开发者社区

火山引擎

征程 6E/M|多 camera 场景示例

地平线开发者

自动驾驶 算法工具链 地平线征程6

天猫商品视频API数据解析(附代码)

tbapi

天猫API 天猫商品视频API 天猫商品视频数据采集 天猫视频API 淘宝视频采集

在AI技术快速实现创意的时代,挖掘专业文档处理新需求成为关键突破点

qife122

AI技术 需求挖掘

文心快码已支持Kimi-K2-0905模型

Comate编码助手

编程 大模型 kimi

一键部署?华为云Solution as Code如何成为AI秘籍?

脑极体

AI

设备点检 设备维护经验总结(6)

万里无云万里天

工业 设备维护 工厂运维 设备点检

Genie 3:世界模型的新前沿 - 实时交互环境生成技术突破

qife122

人工智能 实时生成

工业数字化 信息化经验总结(7)

万里无云万里天

数字化转型 信息化 工业 工厂运维

Kaggle Grandmaster 的价值:不止于竞赛,更在于引领破局

咕泡科技

人工智能 Kaggle 咕泡ai 咕泡科技

Claude 封禁中国?为啥我觉得是个好消息

Immerse

qKnow 知识平台【开源版】发布 1.0.0 版本,全面落地知识管理与智能抽取能力

千桐科技

知识图谱 大模型 知识库 qKnow Java知识图谱

大数据-90 Spark RDD容错机制:Checkpoint原理、场景与最佳实践 容错机制详解

武子康

Java 大数据 flink spark 分布式

香蕉P图已经 Out 了!纳米 AI “P 视频” 才是王炸,视频生成到剪辑一站式搞定,丝滑出片!

阿星AI工作室

学习 AI 产品经理 大模型 AI工具

让数据真正用起来:qData 数据中台开放12大模块,赋能业务创新与智能分析

千桐科技

大数据平台 qData 开源数据中台 Java数据中台 千数平台

欢迎马恩岛政府加入Have I Been Pwned数据泄露查询平台

qife122

网络安全 政府合作

Stack Exchange知识开放共享:现已在Snowflake Marketplace提供高质量AI训练数据

qife122

AI训练数据 知识共享

理想汽车智驾方案介绍 4 | World model + 强化学习重建自动驾驶交互环境

地平线开发者

自动驾驶 端到端 地平线征程6

首个AI教育实训基地落地无锡惠山,摩尔线程携手科大讯飞等合作伙伴赋能未来人才

新消费日报

网络信息收集脚本详解

qife122

PowerShell 系统管理

恶性疟原虫检测系统基于YOLOv8的高效识别系统分享

申公豹

人工智能

智能体(AI Agent)开发实战之【LangChain】(七)核心模块:链(Chains),手把手教你搞定工作流(1)

我和AI的成长

智能体 #LangChain AI Agent

大数据-89 Spark应用必备:进程通信、序列化机制与RDD执行原理

武子康

Java 大数据 flink spark 分布式

会议实时转录接口 Recall 完成 3800 万美元融资,深耕对话数据基建;Locally AI 推出本地实时语音交互丨日报

声网

零压力了解 LoRA 微调原理

蛋先生DX

AI LoRa LLM 大模型微调 FineTuning

天猫图片搜索相似商品API开发指南

tbapi

天猫API 天猫图片搜索接口 天猫拍立淘接口 天猫图片搜索API 天猫图片API

2023年十大最佳游戏引擎指南:从Unity到Bevy全面解析

qife122

编程 游戏开发

在AI技术快速实现创意的时代,挖掘新需求成为核心竞争力——某知名AI框架需求洞察

qife122

AI开发框架 技术演进

人体跌倒识别检测项目|全流程源码+数据集+可视化界面+一键训练部署

申公豹

人工智能

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