【发布时间】:2016-01-07 10:15:12
【问题描述】:
我在 Azure 上部署了我的应用程序,我在 Azure 上创建的数据库运行查询速度较慢。在实际服务器上,我的查询在 0.45 秒内运行,在 SQL Azure 上,我的查询在 14 秒内运行。以下是我的查询
DECLARE @serialNum NVARCHAR(MAX) = '0075'
DECLARE @serialNumSelected NVARCHAR(20) ,
@sku NVARCHAR(20) ,
@description NVARCHAR(100) ,
SELECT @serialNumSelected = t1.SerialNum ,
@sku = t2.SKU ,
@description = t2.Description ,
@animateAssigneeId = t1.AnimateAssigneeId ,
@inanimateAssigneeId = t1.InanimateAssigneeId ,
@numLabels = t3.NumLabelsPrinted ,
@isPersonal = ( CASE WHEN LOWER(t4.Name) = 'personal' THEN 1
ELSE 0
END ) ,
@dateDueBy = t1.DateDueBy
FROM ( SELECT t1.SerialNum ,
t1.RubberGoodSKUId ,
t2.AnimateAssigneeId ,
t2.InanimateAssigneeId ,
t2.DateDueBy
FROM dbo.SerializedRubberGoods t1 WITH ( NOLOCK )
LEFT JOIN ( SELECT * ,
ROW_NUMBER() OVER ( PARTITION BY SerializedRubberGoodId ORDER BY DateTested DESC ) AS rn
FROM dbo.SerializedRubberGoodsCycles c WITH (NOLOCK)
) t2 ON t1.SerializedRubberGoodId = t2.SerializedRubberGoodId
AND t2.rn = 1
) t1
INNER JOIN dbo.RubberGoodSKUs t2 ON t1.RubberGoodSKUId = t2.RubberGoodSKUId
INNER JOIN dbo.RubberGoodTypes t3 ON t2.RubberGoodTypeId = t3.RubberGoodTypeId
INNER JOIN dbo.RubberGoodCategories t4 ON t3.RubberGoodCategoryId = t4.RubberGoodCategoryId
WHERE t1.SerialNum = @serialNum
OPTION ( RECOMPILE )
谁能尽快帮忙 我将不胜感激 谢谢x
【问题讨论】:
-
你说的尽快是什么意思??试图老板我们
-
这完全取决于与您分配给 Azure SQL 实例的 DTU 相比,您的现场 SQL 框的处理能力。 Azure SQL 层的性能差异很大。
-
你应该在你的子查询中移动
where t1.SerialNum = @serialNum一个.. -
谢谢,我做到了,但它没有产生任何差异,如果你有的话,你可以建议其他的东西吗
标签: sql-server azure-sql-database