我有一个项目,我有非常复杂的查询(遗留项目) 项目中有很多查询,存储过程等。 查询有10-30个连接和慢速过滤。 项目不能立即修改(至少需要一年的工作)
是否有提高性能的硬件方法。我可以使用一些增强计算能力的智能Azure设置来提高速度吗? 或者我需要在物理服务器中查找哪些内容?
答案 0 :(得分:1)
答案 1 :(得分:0)
硬件方法:
答案 2 :(得分:0)
您可以使用Standard and Premium
订阅来扩展Azure的性能。因此,如果您的查询速度很慢,您可以随时投入更多硬件,而只有在需要时才能获得这样的优势。您可以将数据库设置为自动扩展,因此当您需求较低时,您需要支付较少的费用,而当数据需求较高时,您的工作负载不会受到影响。
Azure提供QPI,它基本上可以识别哪些查询是最昂贵的查询,因此您可以先优化它们。
Azure还提供了不同的顾问程序,如index advisor,它们将学习如何使用数据库并建议创建或删除索引 - 最好的事情是它可以自动为您完成。
如果您正在考虑使用本地解决方案,则应考虑操作系统成本和硬件成本以及设置和正确配置的时间和成本。创建地理复制设置可能会增加另一层复杂性。因此,如果您需要重新开始并且您的业务需求允许云服务,我会说Azure是可行的方式,因为它提供了丰富的遥测和各种智能数据库功能(并且它们将逐月推出)。另外,请不要忘记,Azure每个月大致更新,而版本在半年或更长时间后获得累积更新包。
答案 3 :(得分:0)
如果您使用的是ms-sql,则需要“NOLOCK”属性 在桌子之后,否则你在阅读/选择时锁定你的桌子。
当您加入表格时,请尝试在加入时添加条件。不 “where clause”
例如
SELECT * FROM TABLE A WITH(NOLOCK)INNER JOIN TABLE B WITH(NOLOCK) ON A.ID = B.ID WHERE B.SOMECOLUMN不为空
SELECT * FROM TABLE A WITH(NOLOCK)INNER JOIN TABLE B WITH(NOLOCK) ON A.ID = B.ID AND B.SOMECOLUMN不为空
第二个更好。
:)