亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問這個sql還有什么方法可以優化?

請問這個sql還有什么方法可以優化?

汪汪一只貓 2018-12-07 05:44:01
SELECT url_id     ,Url ,Url_Title ,MIN([First_Visite_Time]) AS 'First_Visite_Time' ,MAX([Last_Visite_Time]) AS 'Last_Visite_Time' ,SUM([User_Count]) + SUM (ISNULL([e_user_count],0)) AS 'UC' ,SUM([IP_Count]) + SUM (ISNULL([e_ip_count],0)) AS 'IP' ,SUM([PV_count]) + SUM (ISNULL([e_pv_count],0)) AS 'PV' ,SUM([Access_Count]) + ISNULL (sum([e_visite_count]),0) AS 'Access_Count'FROM [report_LinkInfo]where dt>='2010-7-1' and dt<='2010-8-2'GROUP BY Url_Id,Url,Url_Titleorder by [PV] DESC, [IP] DESC ? 通過查看執行計劃,大部分的時間都花在group by字段和order by字段進行排序,原表在Url_Id,Url,Url_Title字段中已經創建了非聚集索引,但加上order by字段后,就失效了,去掉order by就非???
查看完整描述

5 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

你這個是網站統計系統的報告吧。因為你這個 pv , 和 ip 是計算的中間值。所以,很難再進行優化了。

一般的解決方案是創建一個匯總表。保存你上面SQL匯總的信息。

如果當天已經過去了,匯總過一次了以后,以后就不會再匯總了,用一個表緩存是很劃算的。

如果你是要實現當天即時的,那么我建議你建立一個表,專門保存當天的匯總。然后5分鐘,匯總一次。

匯總之前清空表。

查看完整回答
反對 回復 2019-01-07
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

order by 之前的建立視圖,對視圖Order by 應該可以。

查看完整回答
反對 回復 2019-01-07
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

試試先讀到表變量中再order by 排序

查看完整回答
反對 回復 2019-01-07
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

建議給dt字段加上聚合索引,如果是日期類型的話。

查看完整回答
反對 回復 2019-01-07
  • 5 回答
  • 0 關注
  • 513 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號