MySQL存储过程执行很慢
DECLARE cursorIn CURSOR FOR SELECT sopinstanceUId FROM dicomentity a WHERE NOT EXISTS(SELECT sopinstanceUId FROM Instance b WHERE a.sopinstanceUId=b.sopinstanceUId );
DECLARE cursorOut CURSOR FOR SELECT sopinstanceUId FROM dicomentity a WHERE EXISTS(SELECT sopinstanceUId FROM Instance b WHERE a.sopinstanceUId=b.sopinstanceUId );
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _v_done = 1;
DELETE FROM move_file;
SELECT CONCAT(savepath,'/') INTO dest_filepath FROM dicom_filePath WHERE pathtype='default';
OPEN cursorIn;
REPEAT
FETCH cursorIn INTO ins_code;
IF NOT _v_done THEN
INSERT INTO instance(instanceNumber,patient_fk ,study_fk ,series_fk ,sopInstanceUID ,imageType , bitsAllocated , photometricInterpretation , availability , imgrows , imgcolumns , retrieveAETitle,instanceDesc ,acquisitionDate ,contentDate,updateTime,createTime,sopclassUId)
SELECT instanceNumber,patientId,studyInstanceUID, seriesInstanceUID ,sopInstanceUID ,imageType , bitsAllocated , photometricInterpretation , availability , imgrows , imgcolumns , retrieveAETitle,instanceDesc ,acquisitionDate ,contentDate,updateTime,createTime,sopclassUId FROM dicomEntity a
WHERE NOT EXISTS(SELECT 1 FROM dicomentity WHERE a.sopInstanceUID=sopInstanceUID AND a.id<id) AND sopInstanceUID =ins_code;
INSERT INTO dicom_file_info(sOPInstanceUID,fileName,filePath) VALUES (ins_code,dest_filepath,DATE_FORMAT(NOW(),'%Y/%m/%e'));
END IF;
UNTIL _v_done
END REPEAT;
CLOSE cursorIn;