我有一個數據表變量:光標延遲結果集,如何使其有效
SiteID DatabaseYear CreationDate
1 2011 2012.01.01
2 2012 2012.06.06
3 2010 2010.10.10
1 2012 2012.07.07
3 2012 2012.07.27
4 2012 2012.08.31
在一個完美的世界,我想結果是這樣排序:
SiteID DatabaseYear CreationDate
4 2012 2012.08.31
3 2012 2012.07.27
3 2010 2010.10.10
1 2012 2012.07.07
1 2011 2012.01.01
2 2012 2012.06.06
的排序是這樣的:獲取與最近的創建日期的網站,首先顯示(通過CreationDate倒序),然後讓所有其他記錄該站點,並通過DatabaseYear(由DatabaseYear倒序)顯示它們。
當然,下面將不會在所有的工作:
order by CreationDate desc, DatabaseYear desc
,因爲它將應用「CreationDate遞減」所有結果第一組,然後在「DatabaseYear遞減」。
所以,我想出了一個光標,其執行以下操作:
- 獲得最新SITEID
- 把它放在另一張表(表變量是精確的)
- 得到所有其他記錄對於SITEID,按降序通過DatabaseYear
- 刪除所有記錄從第一臺
的習題LEM:
此邏輯運作良好,如果第一個表有幾千條記錄,但是當有超過5000的話,那麼它需要很多時間。由於這是填充網頁上的網格,我不能讓用戶等待時間超過15-20秒。在最壞的情況下(與超過40,000記錄),它需要2-3分鐘來執行。
任何建議,將不勝感激。
這是偉大的,完美的作品。我從來沒有用過。非常感謝。 SQL小提琴也很棒。 – Farhan 2012-08-06 16:24:04