Dear Dan, Thanks for your timely help. Yes, removing the concatenation has reduced the running time nearly 10 times . So finally my sql looks like the below,
SELECT distinct a.playlist,a.material_id,a.destination_locator,a.destination,a.air_time,a.traffic_duration,a.comment,a.title,a.device_name,a.source_locator,a.source from cch_dubber_dublist_view_a1 a left outer join cch_dubber_dublist_view_b1 b ON a.material_id = b.material_id AND a.destination_locator = b.destination_locator AND a.device_name = b.device_name where b.material_id is null The number of records returned is 3566. The time it takes is 18 seconds. My boss wants it to run in 4-5 seconds. If the number of records r more like 4-5000 then it takes even longer. How can i reduce the time even further. Can i index the tables or nething will that help. Help is greatly appreciated. Thanks, Regards Harpreet Kaur >From: [EMAIL PROTECTED] (Dan Kokenge) >To: [EMAIL PROTECTED] ("Harpreet Kaur") >Subject: Re: [PHP-DB] Re: subtracting one query from the other >Date: Tue, 02 Jul 2002 00:33:21 -0400 > > >Hi Harpreet > > >SELECT distinct a.playlist,a.material_id,a.destination_locator, > >a.destination,a.air_time,a.traffic_duration,a.comment,a.title, > >a.device_name,a.source_locator,a.source from record1 a left outer join > >record2 b on > >>a.material_id+a.destination_locator+a.device_name=b.material_id+b.destination_locator+b.device_name > >where b.material_id+b.destination_locator+b.device_name is null > > > >Not sure why you concatenate the fields together. This will take some time >to bring the fields together before the compare. Why not simply compare the >separate fields. Also why do you compare all the fields for null. Seems >like you only need to compare the material_id, that is of course you don't >have a matching material_id that can be null - and I doubt that. >-------------------- >SELECT DISTINCT >a.playlist, >a.material_id, >a.destination_locator, >a.destination, >a.air_time, >a.traffic_duration, >a.comment, >a.title, >a.device_name, >a.source_locator, >a.source > >FROM record1 a > >LEFT OUTER JOIN record2 b >ON a.material_id = b.material_id >AND a.destination_locator = b.destination_locator >AND a.device_name = b.device_name > >WHERE b.material_id is NULL >----------------- >if you need all three you can change the where to: >WHERE b.material_id is NULL >AND b.destination_locator is NULL >AMD b.device_name is null > >Actually this is a fairly common type command and I use it a lot. I don't >know anything about your files. You didn't mention how large the files >were. If they are huge the time may be ok. If not you may want to see if >it's it indexed properly. A index on material_id at a minimum. If this file >is fairly static, with only a few inserts and deletes a minute, then I'd >index the hell out of it, and put an index on all 3 fields. If it's a vary >active file with lot of inserts and deletes, then you have to be careful on >your index scheme. Also if one file is vary large and one very small, then >it is much faster to read the smaller file id's into arrays, and then read >the large file and see if it has a matching id in the array. I've been >called in to consult on problems where I've had to do 6 or 7 joins against >huge files that I've dropped run time from hours to less than 5 minutes >doing the array thing. > >HTH.. Good luck.. >Dan > > >__________________________________________________________________ >Your favorite stores, helpful shopping tools and great gift ideas. >Experience the convenience of buying online with Shop@Netscape! >http://shopnow.netscape.com/ > >Get your own FREE, personal Netscape Mail account today at >http://webmail.netscape.com/ _________________________________________________________________ Join the world’s largest e-mail service with MSN Hotmail. http://www.hotmail.com --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php