首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在SQL Azure上运行查询要慢得多?

为什么在SQL Azure上运行查询要慢得多?
EN

Stack Overflow用户
提问于 2015-06-27 16:34:28
回答 3查看 35.1K关注 0票数 29

我在Azure上创建了一个试用帐户,并从SmarterAsp部署了我的数据库。

当我在SmarterAsp\MyDatabase上运行pivot查询时,结果出现在2秒中。

然而,在Azure\MyDatabase上运行相同的查询花费了94秒

我使用SQL Server 2014 Management Studio (试用版)连接到服务器并运行查询。

速度上的差异是不是因为我的账号是试用账号?

与我的问题相关的一些信息

查询为:

代码语言:javascript
复制
ALTER procedure [dbo].[Pivot_Per_Day]
@iyear int,
@imonth int,
@iddepartment int

as

declare @columnName Nvarchar(max) = ''
declare @sql Nvarchar(max) =''

select @columnName += quotename(iDay) + ','
from (
        Select day(idate) as iDay
        from kpivalues where year(idate)=@iyear and month(idate)=@imonth
        group by idate
        )x

set @columnName=left(@columnName,len(@columnName)-1)

set @sql ='


Select * from (
select kpiname, target, ivalues, convert(decimal(18,2),day(idate)) as iDay   

from kpi

inner join kpivalues on kpivalues.idkpi=kpi.idkpi

inner join kpitarget on kpitarget.idkpi=kpi.idkpi

inner join departmentbscs on departmentbscs.idkpi=kpi.idkpi

where iddepartment='+convert(nvarchar(max),@iddepartment)+'

group by kpiname,target, ivalues,idate)x

pivot
(
     avg(ivalues)
    for iDay in (' + @columnName + ')
) p'

execute sp_executesql @sql

在3个不同的服务器上运行这个查询,我得到了不同的结果,直到我的数据透视表出现在屏幕上:

Azure -已用时间= 100.165秒

Smarterasp.net -已用时间= 2.449秒

LocalServer -已用时间= 1.716秒

关于我在Azure上的试用帐户,我的主要目标是检查在运行上面的存储过程时,我是否会有比Smarter更快的速度。我选择我的数据库服务层-基本、性能级别-Basic(5DTU)和Max。大小为2 2GB。

我的数据库有16个表,1个表有145284行,数据库大小为11mb。这是我的应用程序的测试数据库。

我的问题是:

  1. 我能做什么,以优化此查询(sp)?建议将
  2. 用于小型数据库(100MB-1 1Gb)?我的意思是性能与成本!

基于您的输入的结论:

  • 我对查询进行了建议的更改,性能提高了50%以上-谢谢你,
  • 我在Azure S2上测试了我的查询,更新查询所用的时间是11秒。
  • 我在P1上再次测试了我的查询,运行时间是0.5秒:)
  • 在SmarterASP上更新后的查询运行了0.8秒。

现在我很清楚Azure中的层次是什么,以及拥有一个非常好的查询有多重要(我甚至理解了什么是索引和他的优势/劣势)

谢谢你们,卢西恩

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31086778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档