我的查询需要帮助。该表有1.44亿行,这是一个阶段表(我们从另一个表中插入数据)。之前我没有索引,工作已运行超过9个小时。我使用多列(AdvertiserName,MediaPlanName,MediaPlanNumber,CreativeDescription)将非聚集索引添加到此表中,因为此组合使其唯一。但即使是现在,执行计划也会显示“表扫描”而不是非聚集索引扫描,并且性能没有提高。
这是下面的查询,使用SSIS将数据汇总到csv文件需要很长时间。如何提高此查询的性能?请帮忙!! 运行需要很长时间。 :(
SELECT
AdvertiserName,
AdvertiserID,
MediaPlanNumber,
MediaPlanName,
PublishingSiteName,
SiteName,
Week_Begin_Monday,
CreativeDescription,
SUM(CAST(ViewCount AS BIGINT)) ViewCount,
SUM(CAST(ClickCount AS BIGINT)) ClickCount,
Media,
Segment_Name,
Segment_CD,
Group_Name,
Group_CD,
Channel,
LOB,
Creative_Message,
Creative_Category,
Creative_Type,
SUM(GRP) GRP,
Intended_Delivery_Screen
FROM Stage_MM240(NOLOCK)
GROUP BY AdvertiserName,
AdvertiserID,
MediaPlanNumber,
MediaPlanName,
PublishingSiteName,
SiteName,
Week_Begin_Monday,
CreativeDescription,
Media,
Segment_Name,
Segment_CD,
Group_Name,
Group_CD,
Channel,
LOB,
Creative_Message,
Creative_Category,
Creative_Type,
Intended_Delivery_Screen
答案 0 :(得分:2)
如果没有WHERE子句,最快的执行将始终通过表扫描。如果它使用除了唯一聚簇索引(基本上是PK)之外的任何索引,它将使磁盘访问加倍。
我建议您尝试限制您正在阅读的数据。如果你不能,那你只需要等待......