Microsoft Azure SQL数据库

时间:2015-02-13 10:07:18

标签: azure-sql-database powerquery

我拥有大约600万行数据的Azure SQL数据库。 SQL查询需要很长时间才能响应。虽然我正在尝试过滤数据的基本操作。有没有减少执行时间的解决方案?感谢

2 个答案:

答案 0 :(得分:2)

有很多因素可能影响SQL Azure数据库的性能,但它们通常分为两大类。与您的数据相关的那些以及与Azure SQL DB相关的那些。

数据相关因素包括: 适当的数据索引, 查询优化等

Azure相关因素: 您使用的DB版本是否具有足够的DTU? DTU的范围从基本数据库的5到P3数据库的800(http://azure.microsoft.com/en-us/pricing/details/sql-database/) 您是否正在使用V12预览版,它在Premium版本上具有明显更好的性能。 (http://azure.microsoft.com/en-us/documentation/articles/sql-database-preview-whats-new

答案 1 :(得分:0)

您可以采取一些措施来提高查询效果。我们每个Shard(数据库)有大约2000万行。我们遇到了一些与查询性能相关的问题,Azure SQL选择的低效查询计划以及具有常规DTU峰值的高磁盘IO。所有这些都在P4订阅上。

  • 由于SQL Server内部等待表大小增加20%,然后再次更新统计信息,因此统计信息可能会很快过时。除了自动更新统计信息处于启用状态外,最好安排定期自动更新统计信息的作业。
  • 检查索引是否碎片化。更多的碎片化,表现更差。
  • 重温您选择的索引。索引中的列数越多,插入性能就越小,因为对于表上的每个DML操作,每个索引上都会发生操作以更新它。如果您确实需要所有这些索引,请重建它们。
  • 强制查询计划 - 使用查询存储来强制查询优化器使用有效的查询计划而不是低效的查询计划。这应该只是最后的手段,因为查询优化器通常可以很好地选择正确的计划。通常情况下,如果处理得当,以上所有要点都应解决问题。