зеркало из https://github.com/mozilla/gecko-dev.git
fix for bug #407124: performance problem with expiration code due to query in FindVisits() for people with lots of history. patch=Marco Bonardo <mak77@supereva.it> r=sspitzer, dietrich a=blocking-firefox-3+ p1 / m10
This commit is contained in:
Родитель
904745fbad
Коммит
5784e1be45
|
@ -433,9 +433,9 @@ nsNavHistoryExpire::FindVisits(PRTime aExpireThreshold, PRUint32 aNumToExpire,
|
|||
// is bookmarked or not.
|
||||
nsCAutoString sqlBase;
|
||||
sqlBase.AssignLiteral(
|
||||
"SELECT v.id, v.place_id, v.visit_date, h.url, h.favicon_id, h.hidden, b.fk "
|
||||
"FROM moz_places h LEFT OUTER JOIN moz_historyvisits v ON h.id = v.place_id "
|
||||
"LEFT OUTER JOIN moz_bookmarks b on h.id = b.fk ");
|
||||
"SELECT v.id, v.place_id, v.visit_date, h.url, h.favicon_id, h.hidden, "
|
||||
"(SELECT fk FROM moz_bookmarks WHERE fk = h.id) "
|
||||
"FROM moz_places h JOIN moz_historyvisits v ON h.id = v.place_id ");
|
||||
|
||||
// 1. Expire records older than the max-age cap
|
||||
nsCAutoString sqlMaxAge;
|
||||
|
@ -444,7 +444,7 @@ nsNavHistoryExpire::FindVisits(PRTime aExpireThreshold, PRUint32 aNumToExpire,
|
|||
if (aNumToExpire) {
|
||||
// Select records older than the max-age cap
|
||||
sqlMaxAge.AppendLiteral("WHERE v.visit_date < ?1 "
|
||||
"ORDER BY v.visit_date DESC LIMIT ?2");
|
||||
"ORDER BY v.visit_date ASC LIMIT ?2");
|
||||
}
|
||||
|
||||
nsCOMPtr<mozIStorageStatement> selectStatement;
|
||||
|
|
Загрузка…
Ссылка в новой задаче