【问题标题】:Bad T-SQL procedure performance on Azure Cloud platformAzure 云平台上的 T-SQL 过程性能不佳
【发布时间】:2023-04-09 03:41:01
【问题描述】:

我们正在观察 Azure 云平台上的奇怪行为

问题陈述: 我们开发了 T-SQL 存储过程来将数据从 CSV 文件转换为目标数据模型。 我们正在对大约 7 条 Lac 记录 (700000) 运行这些程序

问题在于这些程序在不同环境中的执行时间

云平台 (Azure SQL):2 小时 - 2 小时 - 30 分钟

笔记本电脑 AMD A8 PRO 1.9 GHZ (SQL Server 2014) RAM 8GB:22 分钟

台式机 Intel i3 6100 T 3.20 GHZ (SQL Server 2014) RAM 8GB:5 分 52 秒

理想情况下,我们希望程序在生产服务器上运行得更快,但这里情况正好相反。

从笔记本电脑与台式机的执行时间我们可以观察到程序运行速度更快,CPU 速度和处理能力更高。

我们被要求将这些程序在云端的执行时间从 2 小时 30 分钟减少到 40 分钟以下。

我们确实在需要的地方设置了索引,但我无法理解 Azure 与台式机/笔记本电脑上执行时间的这种差异

任何可以在这里做什么的建议

【问题讨论】:

  • 您是在 VM 中使用 SQL,还是在 Azure SQL 数据库中使用?如果您使用的是后者,您使用的是哪一层?
  • 我们正在使用 Azure SQL 数据库,我不确定该层(需要与 Dev-Ops 团队联系以获取此信息)是否有一种简单的方法来找出可能是使用查询?
  • 您可以使用 PowerShell Get-AzureSqlDatabaseServiceObjective找到 SQL 层
  • 其基本订阅

标签: performance azure tsql azure-sql-database


【解决方案1】:

要解决性能问题,您必须完成一系列步骤来隔离和确定问题的原因。

您可以使用性能洞察工具。它记录所有查询并向您显示数据库的性能。 https://azure.microsoft.com/en-us/documentation/articles/sql-database-query-performance/

【讨论】:

  • 感谢您的建议,但我们无法直接访问数据库。 (甚至不能直接从 tablename 中触发 select * :()我们通过 dev-ops 管道完成所有操作
【解决方案2】:

您已声明您在基本层中使用 Azure SQL 数据库。这意味着您有 5 个 DTU 可用于数据库。 这是 Azure SQL 数据库可以达到的绝对最低值。

有关 DTU 的信息,请查看DTU based purchasing model

请注意,您可以通过选择不同的层来扩展可用于数据库的 DTU 数量。在 P15 层中,这高达 4000 DTU。这增加了 800%。

另一种解决方案是调查vCore-based purchasing model (preview)

【讨论】:

  • 谢谢,这里的问题似乎是较低的 DTU,现在由架构师做出升级决定
猜你喜欢
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-23
相关资源
最近更新 更多