适用于中型应用程序的Azure DTU

时间:2018-02-05 07:12:56

标签: azure-sql-database database-performance

我正在尝试将我的ASP(IIS)+ SQLServer应用程序从SQL Server Express Edition迁移到Azure SQL数据库。目前,我们只有一台同时具有IIS和SQL Express版本的专用服务器。计划的设置将是Azure虚拟机和Azure SQL数据库上的ASP(IIS)。

根据我对Google的搜索,似乎SQL Server Express Edition存在性能问题,这些问题已在标准版和企业版中得到解决。 DTU计算器指示我应该移动到200个DTU。但是,这是基于在同一专用服务器上使用IIS的SQL Express版本设置上的测试运行。

更多信息:

  1. 目前数据库大小约为5 GB,包括备份文件。
  2. 总用户数约为500人。
  3. 同时使用量有限,一次约30-40个用户。
  4. 仅在有限数量的用户的特定时间范围内批量使用报告检索。
  5. 鉴于总用户数较少,我对300DTU的转变表示怀疑。我最初假设100个DTU已经足够好了,但是在寻找之前处理过这个问题的人的一些建议。

3 个答案:

答案 0 :(得分:0)

  

似乎SQL Server Express Edition存在性能问题

这是不正确的。有一些限制,如10GB大小,一个核心CPU和一些功能被禁用..

  

我最初假设有100个DTU已经足够好了,但是在之前已经处理过这个问题的人那里寻找一些建议。

我会接受DTU计算器的建议,但如果您想使用100 DTU,我建议您继续使用它,但要始终如一地评估性能。

以下查询可以在您的实例中为您提供DTU指标,如果任何一个指标在一段时间内始终超过90%,我会尝试调整该指标并最终升级到新层,如果我不成功的话

DTU查询

SELECT start_time, end_time,      
  (SELECT Max(v)      
   FROM (VALUES (avg_cpu_percent), (avg_physical_data_read_percent), (avg_log_write_percent)) AS value(v)) AS [avg_DTU_percent]    
FROM sys.resource_stats   
WHERE database_name = '<your db name>'   
ORDER BY end_time DESC;

答案 1 :(得分:0)

数据库大小和用户数量不是估算DTU使用情况的可靠方法。具有少量用户的索引不佳的数据库可能会消耗大量的DTU。具有活跃流量的经过良好调整的数据库可以消耗相对较少数量的DTU。在我的一个客户中,我们有一个数据库,每天处理数百万个CRUD操作,超过3,000个用户,很少打破40DTU。

话虽如此,不要为您的DTU设置而烦恼。它非常容易监控和更改。您可以在不中断服务的情况下向上扩展或缩小。我会做出最好的猜测,稍微过度分配,然后根据你看到的内容上移或下移你分配的DTU。

答案 2 :(得分:0)

-在您正在使用的Azure数据库上运行以下选择

SELECT     
  max (avg_cpu_percent),max(avg_data_io_percent),
   max (avg_log_write_percent)  
FROM sys.resource_stats   
WHERE database_name = 'Database_Name'