我在Azure上创建了一个试用帐户,并从SmarterAsp
部署了我的数据库。
当我在SmarterAsp\MyDatabase
上运行pivot查询时,结果出现在2秒中。
然而,在Azure\MyDatabase
上运行相同的查询花费了94秒。
我使用SQL Server 2014 Management Studio (试用版)连接到服务器并运行查询。
速度上的差异是不是因为我的账号是试用账号?
与我的问题相关的一些信息
查询为:
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。这是我的应用程序的测试数据库。
我的问题是:
基于您的输入的结论:
现在我很清楚Azure中的层次是什么,以及拥有一个非常好的查询有多重要(我甚至理解了什么是索引和他的优势/劣势)
谢谢你们,卢西恩
https://stackoverflow.com/questions/31086778
复制相似问题