gpt4 book ai didi

sql-server - Azure SQL,聚集列存储索引, "TOP"性能

转载 作者:行者123 更新时间:2023-12-02 08:07:53 25 4
gpt4 key购买 nike

我有一个关于在 SQL Azure 上使用 Top 与具有聚集聚集索引的表的问题。

两个表都有聚集列存储索引,表 HeaderTable 有 30 万行,表 ValuesTable 有 650 万行。

-- with no "Top"
--responce after 2 sec
declare @Date datetime = getdate()
select zp.idCol1, Value1, zp.idcol2 from [HeaderTable] zp
inner join [dbo].[ValuesTable] zpp
on zp.idcol2 = zpp.idcol2
where zp.Date > @Date-30 and zp.Date < @Date-10 and zp.idCol1>0 and zpp.Value2 = 'SZT'
order by idcol2
go

-- with "Top 100"
--responce after 27 sec
declare @Date datetime = getdate()
select top 100 zp.idCol1, Value1, zp.idcol2 from [HeaderTable] zp
inner join [dbo].[ValuesTable] zpp
on zp.idcol2 = zpp.idcol2
where zp.Date > @Date-30 and zp.Date < @Date-10 and zp.idCol1>0 and zpp.Value2 = 'SZT'
order by idcol2

go

-- Result into Temporary Table and Select top 100 from Temporaty Table
-- responce after 2 sec

declare @Date datetime = getdate()
select zp.idCol1, Value1, zp.idcol2 into #d from [HeaderTable] zp
inner join [dbo].[ValuesTable] zpp
on zp.idcol2 = zpp.idcol2
where zp.Date > @Date-30 and zp.Date < @Date-10 and zp.idCol1>0 and zpp.Value2 = 'SZT'

select top 100 * from #d order by #d.idcol2
drop table #d
go

正如您所见,第二个查询中的顶部操作非常慢。也许有人对这个问题有一些提示?

最佳答案

这在 Azure 上的新数据库(兼容级别 130,兼容级别 130 目前支持预览版,尚未普遍可用)的增强功能中进行了优化。

ALTER DATABASE <dbname>
SET COMPATIBILITY_LEVEL = 130

与众不同。

关于sql-server - Azure SQL,聚集列存储索引, "TOP"性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com