我有一个非常大的桌子(超过140万行,大小约230 gb)。有一列名为“date_dim”的聚集索引asc。表格中存储了2015年的所有数据。性能问题 - 在非常大的桌子上每月选择firstdate
我的目标是获取存储数据的月份的第一个日期。所以一月份的数据可能在5日开始。所以我必须建立一个'动态'查询。
要获取这个数据,我创建了以下查询:
SELECT
*
FROM (
SELECT
date_dim
,row_num = ROW_NUMBER() OVER (PARTITION BY MONTH(date_dim) ORDER BY date_dim ASC)
FROM myTable_2015 WITH (NOLOCK)
) AS s
WHERE
row_num = 1
ORDER BY
1
现在我的问题是,查询有一个很长的时间来获取数据。是否有其他选项可以创建性能更好的查询?你有任何性能建议选择这样的大表我的具体情况?
其实我不能对表本身,只有“读”访问的任何变化......
广东话,你刚刚从日期表把它隔离开来? – RegBes
不,因为我需要每月存储数据的第一个日期... –