MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我使用Azure表存储或SQL Azure作为我们的CQRS读取系统?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们即将在内部实施我们的CQRS系统的Read部分,目的是大大提高我们的读取性能.目前,我们的读取是通过一个Web服务进行的,该服务针对规范化数据运行 Linq-to-SQL查询,涉及到@R_419_6285@ Azure数据库的某种程度的反序列化.

我们的数据简化结构如下:

>用户
>对话(将消息分组到同一收件人)
>消息
>收件人(用户集)

我想将其移动到非规范状态,以便当用户请求查看从EITHER读取的消息的源:

Azure表存储中存在非规范化表示

> UserID作为PartitionKey
> ConversationID作为RowKey
>任何容易变化的易失性数据存储为实体
>在实体中序列化为JSON的消息
>所述消息的收件人在一个实体中序列化为JSON
>这个主要问题是表存储中的一行有限(960KB)
>“volatile data”列中的任何查询都会很慢,因为它们不是密钥的一部分

Azure表存储中保存的归一化表示

>对话详细信息,消息和收件人的不同表
>存储在对话表中的消息和收件人的分区密钥.
>酒吧吧这遵循与上述相同的结构
>获取最大行大小问题
>但是归一化状态会降低非规格化表的性能提升吗?

要么

在@R_419_6285@ Azure中持有的非规范化表示

> UserID&对话ID作为复合主键保存
>任何容易变化的易失性数据存储在单独的列中
>在列中序列化为JSON的消息
>所有邮件的收件人在列中序列化为JSON
>索引的最大灵活性和非规范化数据的结构
>性能比表存储查询慢得多

我问的是,有没有人有任何经验在Table Storage或@R_419_6285@ Azure中实现非规范化的结构,你会选择哪一种?还是有更好的方法我错过了?

我的直觉说,表格存储中的数据的归一化(至少在一定程度上)将是要走的路;不过,我担心这样会降低性能提升,进行3次查询,以便获取用户的所有数据.

解决方法

虑Azure表的主要驱动力是大大提高读取性能,根据您在@R_419_6285@ Azure中存在的非规范化表示的最后一点,使用@R_419_6285@ Azure的方案“慢得多”.我个人认为这是非常令人惊讶的,原因很多,并会要求详细分析这一说法.我的默认位置是,在大多数情况下,@R_419_6285@ Azure会快得多.

以下是我对这项索赔的怀疑的一些原因:

> @R_419_6285@ Azure使用本机/高效TDS协议返回数据; Azure表使用JSON格式,这是更详细的
>只要您在@R_419_6285@ Azure中使用主键或具有索引,@R_419_6285@ Azure中的连接/过滤器将非常快速; Azure表没有索引,连接必须在客户端执行
> Azure表返回的记录数限制(每次1,000条记录)意味着需要实施多次往返以获取许多记录

然您可以通过创建其他持有自定义索引的表来伪造Azure Tables中的索引,但您拥有维护该索引的职责,这将减缓您的操作,并且如果您不小心,可能会创建孤立方案.

最后但并非最不重要的是,当您尝试降低存储成本(比@R_419_6285@ Azure更便宜)时,使用Azure表通常是有意义的,当您需要比@R_419_6285@ Azure可以提供的更多存储空间(尽管现在可以使用联合中断单数据库最大存储限制).例如,如果您需要存储10亿个客户记录,则使用Azure Table可能有意义.但是,使用Azure表仅增加速度在我看来是相当可疑的.

如果我在你的鞋子,我会非常努力的质疑这个说法,并确保你有专家的@R_419_6285@开发技能的工作人员,可以演示您正在完成@R_419_6285@ Server / @R_419_6285@ Azure固有的性能瓶颈,完全改变您的架构.

此外,我将定义您的绩效目标.您是否正在浏览100倍的访问时间?你虑过缓存吗?您在数据库中正确使用索引吗?

我的2美分…

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。
编程之家官方1群(满)
编程之家官方2群(满)
编程之家官方3群(满)
编程之家官方4群
编程之家官方5群(新)
  • 上一篇:sql-server – SQL72043和其他SSDT下一篇:数据库设计 – 在数据库中有“外键

大佬总结

以上是大佬教程为你收集整理的我使用Azure表存储或SQL Azure作为我们的CQRS读取系统?全部内容,希望文章能够帮你解决我使用Azure表存储或SQL Azure作为我们的CQRS读取系统?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: