Quantcast
Viewing all articles
Browse latest Browse all 24688

Stored Procedure takes too long when called using command processor-Mysql

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


Viewing all articles
Browse latest Browse all 24688

Trending Articles