Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新的Azure SQL数据库服务,可扩展性如何,DTU是什么_Azure_Azure Sql Database - Fatal编程技术网

新的Azure SQL数据库服务,可扩展性如何,DTU是什么

新的Azure SQL数据库服务,可扩展性如何,DTU是什么,azure,azure-sql-database,Azure,Azure Sql Database,新的Azure SQL数据库服务看起来不错。然而,我正在努力弄清楚它们的可伸缩性到底有多大 例如,假设一个200个并发用户的系统 标准 Workgroup and cloud applications with "multiple" concurrent transactions 溢价 Mission-critical, high transactional volume with "many" concurrent users “多”和“多”是什么意思 标准/S1还提供15个DTU,而标准

新的Azure SQL数据库服务看起来不错。然而,我正在努力弄清楚它们的可伸缩性到底有多大

例如,假设一个200个并发用户的系统

标准

Workgroup and cloud applications with "multiple" concurrent transactions
溢价

Mission-critical, high transactional volume with "many" concurrent users
“多”和“多”是什么意思

标准/S1还提供15个DTU,而标准/S2提供50个DTU。这是什么意思

回到我的200用户示例,我应该选择什么选项

谢谢

编辑


但是什么是“最大会话”?这是并发连接的数量吗?

如果不进行测试,很难判断。我想200个用户是指200个人同时坐在电脑前做事情,而不是200个每天登录两次的用户。S2允许每秒49个事务,听起来不错,但您需要进行测试。另外,进行大量缓存也不会有什么坏处。

在Azure SQL数据库上有一些很棒的MSDN文章,特别是这篇文章为DTU提供了一个很好的起点。及

简而言之,这是一种了解为每个性能级别提供动力的资源的方法。在与Azure SQL数据库客户交谈时,我们知道的一件事是,他们是一个多样化的群体。有些人对最绝对的细节、内核、内存、IOPS最为满意,而另一些人则需要更为概括的信息。没有一刀切的办法。DTU是为后面的组设计的

不管怎样,云的一个好处是很容易从一个服务层和性能级别开始并迭代。特别是在Azure SQL数据库中,您可以在应用程序启动时更改性能级别。在更改过程中,当数据库连接断开时,经过的时间通常不到一秒钟。我们服务中用于从服务层/性能级别移动数据库的内部工作流遵循与数据中心中故障转移节点的工作流相同的模式。节点故障转移始终发生,与服务层更改无关。换句话说,你不应该注意到这方面与你过去的经验有什么不同

如果您不喜欢DTU,那么我们还有一个更详细的基准工作负载,可能会吸引您


感谢Guy

查看今天在Build上发布的新产品(预览版)。已使用弹性DB价格信息更新。DTU基于CPU、内存、读取和写入的混合度量。随着DTU的增加,性能级别提供的功率也会增加。Azure对并发连接、内存、IO和CPU使用有不同的限制。第一层选择哪一层实际上取决于

  • #并发用户
  • 对数率
  • IO速率
  • CPU使用率
  • 数据库大小
  • 例如,如果您正在设计一个系统,其中有多个用户正在读取数据,并且只有几个写入程序,并且如果您的应用程序中间层可以尽可能多地缓存数据,并且只有选择性查询/应用程序重新启动才会命中数据库,那么您可能不太担心IO和CPU的使用情况

    如果多个用户同时访问数据库,则可能会达到并发连接限制,请求将被限制。如果您可以在应用程序中控制到数据库的用户请求,那么这应该不是问题

    日志速率:取决于数据更改量(包括系统中的额外数据泵送)。我已经看到应用程序稳定地泵送数据,而不是同时泵送数据。再次选择正确的DTU取决于如何在应用程序端进行节流并获得稳定的速率

    数据库大小:Basic、standard和premium具有不同的允许最大大小,这是另一个决定因素。使用表压缩这类功能有助于减少总大小,从而减少总IO

    内存:优化expesnive查询(联接、排序等),启用锁升级/nolock扫描有助于控制内存使用

    人们通常在数据库系统中犯的一个非常常见的错误是扩展他们的数据库,而不是优化查询和应用程序逻辑。因此,测试、监视具有不同DTU限制的资源/查询是处理此问题的最佳方法

    如果选择了错误的DTU,不用担心,您总是可以在SQL DB中放大/缩小,并且它是完全在线操作的


    另外,除非有充分的理由迁移到V12以获得更好的性能和功能。

    谢谢。是的,我是这个意思,我同意测试。我用JMeter。“最大会话”是什么意思?这看起来有点像连接的数量,不管怎样,你支付的越多,你得到的就越多。我只是想知道这是否与并发性有关。我认为Max Session对应于Max Connections。考虑到您通常使用连接池,因此它与用户不对应。我想知道我们使用的当前Web SQL数据库产品的“最大会话数”是多少。是的,我想在EF/MSSQL设置中默认情况下会使用连接池。因此,如果“最大会话”数很低,那么查询将排队很多。他们会超时并失败吗?所以我想一个最大200个会话帐户(Standard/S1)可能会满足400个并发用户的要求,使用池。只是大声思考。。。。。同样假设SQL不是很慢。我也这么认为,但你真的需要测试,因为每个应用都是不同的。伙计,非常感谢你的反馈。我们目前遇到的一个问题是查询性能非常多变。我们目前使用SQL数据库Web,我们的用户基数不大,数据库是新的,大小为MB。我已经看到会员服务GetUser SP从1秒到4秒不等(由NewRelic在SQL层上测量)。我有点怀疑,我可能在DB中遇到了某种形式的争论,因此存在可变性。因此,我希望新标准S1的性能会更好