我拥有大约 600 万行数据的 Azure SQL 数据库。SQL 查询需要很长时间才能响应。虽然我正在尝试过滤数据的基本操作。有什么办法可以减少执行时间吗?谢谢
问问题
127 次
2 回答
2
有很多因素会影响 SQL Azure 数据库的性能,但它们通常分为两大类。与您的数据相关的那些以及与 Azure SQL DB 相关的那些。
数据相关因素包括: 数据上的适当索引、查询优化等。
Azure 相关因素: 您是否使用具有足够 DTU 的 DB 版本?DTU 的范围从 Basic DB 的 5 到 P3 DB 的 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)
于 2015-02-13T22:56:07.700 回答
0
您可以采取一些措施来提高查询性能。每个分片(数据库)大约有 2000 万行。我们遇到了一些与查询性能、Azure SQL 选择的低效查询计划以及高磁盘 IO 和常规 DTU 峰值相关的问题。所有这一切都在 P4 订阅上。
- 由于 SQL Server 在内部等待表大小增加 20%,然后再次更新统计信息,因此对于大型表,统计信息可能会很快过时。除了启用自动更新统计信息之外,最好安排一个定期自动更新统计信息的作业。
- 检查您的索引是否碎片化。碎片越多,性能越差。
- 重新审视您选择的索引。索引中的列数越多,插入性能就越差,因为对于表上的每个 DML 操作,每个索引都会发生更新它的操作。如果您确实需要所有这些索引,请重建它们。
- 强制查询计划 - 使用查询存储来强制查询优化器使用有效的查询计划,而不是低效的查询计划。这应该只是最后的手段,因为查询优化器通常可以很好地选择正确的计划。通常,如果正确完成上述所有要点,应该可以解决问题。
于 2017-01-12T16:35:44.283 回答