2010-03-16 148 views
3

我有一個表,如下性能問題

可以有幾個記錄每個用戶id [甚至上百萬]

我已經聚集在日期列索引和在時間範圍內非常頻繁地查詢此表。 列'髒'是不可空的,可以採取0或1,所以我沒有索引'髒'

我有這個表中的數百萬記錄,在我的應用程序中的一個特定情況下,我需要查詢此表以獲取至少有一條記錄被標記爲髒的所有UserId。

我想這個查詢 - 選擇不同的(用戶ID)從UserLogs哪裏髒= 1

我有一千萬條記錄總而這需要像10分鐘跑,我想這對跑的比這個快得多。

[我能夠在查詢日期列此表在不到一分鐘。]

任何意見/建議歡迎。

我ENV 64位,sybase15.0.3,Linux的

回答

1

添加同時包含用戶名和骯髒的字段的索引。將UserId放在索引之前,因爲它具有更多的唯一值。

2

我的建議是,以減少需要由「壓縮」日誌條目以在適當的時間間隔存檔表查詢的數據量。

,您仍然可以訪問所有的條目,如果你提供了一個聯合視圖過電流和歸檔日誌數據,但訪問當前日誌,將大大減少。

+0

感謝suggestion..i以前那樣考慮這一點,但ATM我期待在其他可能的選擇 – Inv3r53 2010-03-16 07:39:14