适用于中型应用程序的 Azure DTU
Azure DTUs for a medium size application
我正在尝试将我的 ASP (IIS) +SQLServer 应用程序从 SQL Server Express Edition 迁移到 Azure SQL 数据库。目前,我们只有一台同时装有 IIS 和 SQL Express 版本的专用服务器。计划的设置将是 ASP (IIS) 在 Azure 虚拟机和 Azure SQL 数据库上。
根据我在 google 上的搜索,似乎 SQL 服务器快捷版存在性能问题,这些问题在标准版和企业版中已得到解决。 DTU 计算器指示我应该移动到 200 个 DTU。但是,这是基于 运行 在 SQL Express 版设置上的测试 运行,在同一台专用服务器上使用 IIS。
更多信息:
- 数据库大小目前约为 5 GB,包括备份文件。
- 用户总数约为 500。
- 同时使用是有限的,比如一次大约 30-40 个用户。
- 只有少数用户在特定时间范围内大量使用报告检索。
鉴于总用户数较少,我对迁移到 300DTU 持怀疑态度。我最初假设 100 个 DTU 就足够了,但正在向以前处理过这个问题的人寻求一些建议。
it seems SQL server Express Edition has performance issues
这不是 correct.There 某些限制,如 10GB 大小、一个内核 CPU 和一些功能被禁用..
I am initially assuming 100 DTUs is good enough but looking for some advice on someone who has dealt with this before.
我会接受 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;
数据库大小和用户数量并不是估计 DTU 使用情况的可靠方法。具有少数用户的索引不佳的数据库可能会消耗大量的 DTU。具有活跃流量的经过良好调整的数据库可以消耗相对较少的 DTU。在我的一个客户那里,我们有一个数据库,每天处理超过 3,000 名用户的数百万次 CRUD 操作,很少破坏 40DTU。
也就是说,不要为您的 DTU 设置烦恼。监控和更改真的很容易。您可以在不中断服务的情况下扩大或缩小规模。我会做出最好的猜测,稍微过度分配,然后根据您看到的情况向上或向下移动分配的 DTU。
-- 运行 以下 select 在您正在使用的 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'
我正在尝试将我的 ASP (IIS) +SQLServer 应用程序从 SQL Server Express Edition 迁移到 Azure SQL 数据库。目前,我们只有一台同时装有 IIS 和 SQL Express 版本的专用服务器。计划的设置将是 ASP (IIS) 在 Azure 虚拟机和 Azure SQL 数据库上。
根据我在 google 上的搜索,似乎 SQL 服务器快捷版存在性能问题,这些问题在标准版和企业版中已得到解决。 DTU 计算器指示我应该移动到 200 个 DTU。但是,这是基于 运行 在 SQL Express 版设置上的测试 运行,在同一台专用服务器上使用 IIS。
更多信息:
- 数据库大小目前约为 5 GB,包括备份文件。
- 用户总数约为 500。
- 同时使用是有限的,比如一次大约 30-40 个用户。
- 只有少数用户在特定时间范围内大量使用报告检索。
鉴于总用户数较少,我对迁移到 300DTU 持怀疑态度。我最初假设 100 个 DTU 就足够了,但正在向以前处理过这个问题的人寻求一些建议。
it seems SQL server Express Edition has performance issues
这不是 correct.There 某些限制,如 10GB 大小、一个内核 CPU 和一些功能被禁用..
I am initially assuming 100 DTUs is good enough but looking for some advice on someone who has dealt with this before.
我会接受 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;
数据库大小和用户数量并不是估计 DTU 使用情况的可靠方法。具有少数用户的索引不佳的数据库可能会消耗大量的 DTU。具有活跃流量的经过良好调整的数据库可以消耗相对较少的 DTU。在我的一个客户那里,我们有一个数据库,每天处理超过 3,000 名用户的数百万次 CRUD 操作,很少破坏 40DTU。
也就是说,不要为您的 DTU 设置烦恼。监控和更改真的很容易。您可以在不中断服务的情况下扩大或缩小规模。我会做出最好的猜测,稍微过度分配,然后根据您看到的情况向上或向下移动分配的 DTU。
-- 运行 以下 select 在您正在使用的 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'