I have this code
DROPPROCEDUREIFEXISTS search;
DELIMITER ;;createprocedure search (IN startTime datetime,IN endTime datetime,IN searchString varchar(255))BEGINDECLARE t int;SET t =0;SET@outvar =0;SET@outvar2 =@outvar;WHILE startTime<=endTime DO SET@query = CONCAT('SELECT tableName FROM syslogindex WHERE startDate =\'',startTime,'\' INTO @outvar ;');
PREPARE STMT FROM@query;EXECUTE STMT;SET@query3 = CONCAT('CREATE TABLE IF NOT EXISTS `',@outvar,'` (ID int(10) unsigned, CustomerID bigint(20), ReceivedAt datetime, DeviceReportedTime datetime, Facility smallint(6), Priority smallint(6), FromHost varchar(60), Message text, NTSeverity int(11), Importance int(11), EventSource varchar(60), EventUser varchar(60), EventCategory int(11), EventID int(11), EventBinaryData text, MaxAvailable int(11), CurrUsage int(11), MinUsage int(11), MaxUsage int(11), InfoUnitID int(11), SysLogTag varchar(60), EventLogType varchar(60), GenericFileName varchar(60), SystemID int(11), processid varchar(60), checksum int(11))');
PREPARE STMT FROM@query3;EXECUTE STMT;IF@outvar2 !=@outvar THENIF t >0THENSET@query2 = CONCAT(@query2,' union (select * from `',@outvar,'` WHERE Message LIKE
\'',searchString,'\')')
ELSEIF t <1THENSET@query2 = CONCAT('(select * from `',@outvar,'` WHERE Message LIKE \'',searchString,'\')');SET t =1;ENDIF;ENDIF;SET@outvar2 =@outvar;SET startTime = DATE_ADD(startTime,INTERVAL 1 DAY);ENDWHILE;SET@query2 = CONCAT(@query2,';');
PREPARE STMT FROM@query2;EXECUTE STMT;END;;
DELIMITER ;
whenever i call the procedure like this:
call search('2013-02-17','2013-02-17 1:00:00','%port%');
Command promt appears to never end. It takes like 20 min to compile a 30min data
How can I solve this isseue? What commands should I use to put a limit to this error?
Again, It takes too long to compile
Thanks