1000x speedup (60 s -> 60 ms)
authordpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 16 Sep 2005 14:11:00 +0000 (14:11 +0000)
committerdpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 16 Sep 2005 14:11:00 +0000 (14:11 +0000)
git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@122 8392b6e1-25fa-0310-8288-cc32f8e212ea

lib/BackupPC/SearchLib.pm

index c2000c7..fa12904 100644 (file)
@@ -301,7 +301,7 @@ sub getBackupsNotBurned() {
 
        my $dbh = get_dbh();
 
-       my $sql = q{ 
+       my $sql = q{
                SELECT 
                        backups.hostID AS hostID,
                        hosts.name AS host,
@@ -311,7 +311,20 @@ sub getBackupsNotBurned() {
                        backups.date AS date,
                        backups.size AS size
                FROM backups 
-               WHERE id not in( select id from backups,archive_backup where archive_backup.backup_id=backups.id)
+               INNER JOIN shares       ON backups.shareID=shares.ID
+               INNER JOIN hosts        ON backups.hostID = hosts.ID
+               LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id AND archive_backup.backup_id IS NULL
+               WHERE backups.size > 0
+               GROUP BY
+                       backups.hostID,
+                       hosts.name,
+                       shares.name,
+                       backups.num,
+                       backups.shareid,
+                       backups.id,
+                       backups.type,
+                       backups.date,
+                       backups.size
                ORDER BY backups.date
        };
        my $sth = $dbh->prepare( $sql );