Note that there are some explanatory texts on larger screens.

plurals
  1. POHave an issue of extrem slow sp and he dont do his job
    text
    copied!<p>i got this sp:</p> <pre><code>DROP TABLE IF EXISTS SplitValuesDump; CREATE TABLE SplitValuesDump ( value VARCHAR(1000) NOT NULL PRIMARY KEY ); DELIMITER $$ DROP PROCEDURE IF EXISTS `ChangeSitesRedirects`$$ CREATE PROCEDURE `ChangeSitesRedirects`( prodimainAddress varchar(255), subdomainMainAddress varchar(255) ) SQL SECURITY INVOKER BEGIN DECLARE tdomain varchar(1000); DECLARE tvalue varchar(1000); DECLARE prepValue varchar(1000); DECLARE subdomainFullAddress varchar(1000); DECLARE totalDomain int; DECLARE tclientid int; DECLARE sitedone INT DEFAULT 0; DECLARE splitdone INT DEFAULT 0; DECLARE lastDomain varchar(1000); DECLARE curlSites CURSOR FOR (SELECT domain,clientid from sites where redirectsubdomain = 'N'); DECLARE CONTINUE HANDLER FOR NOT FOUND SET sitedone = 1; set sitedone := 0; OPEN curlSites; Scan_Sites:WHILE (sitedone = 0) DO IF sitedone = 1 THEN BEGIN LEAVE Scan_Sites; END; ELSE BEGIN DECLARE curlStringDump CURSOR FOR (SELECT `value` from SplitValuesDump); DECLARE CONTINUE HANDLER FOR NOT FOUND SET splitdone = 1; FETCH curlSites INTO tdomain,tclientid; CALL split_string(tdomain,';'); OPEN curlStringDump; SET splitdone:=0; ScanDump: WHILE (splitdone = 0) DO IF splitdone = 1 THEN BEGIN LEAVE ScanDump; END; ELSE BEGIN FETCH curlStringDump INTO tvalue; SET subdomainFullAddress:= subdomainMainAddress; IF tvalue &lt;&gt; "" THEN BEGIN IF tvalue like prodimainAddress OR tvalue like subdomainMainAddress THEN BEGIN set totalDomain := totalDomain + 1; IF tvalue like subdomainMainAddress THEN BEGIN SET subdomainFullAddress := tvalue; END; END IF; END; ELSE BEGIN set totalDomain := totalDomain + 1; set lastDomain := tvalue; END; END IF; END; END IF; END; END IF; END WHILE ScanDump; CLOSE curlStringDump; SET splitdone :=0; SET prepValue:='N'; IF lastDomain = '' AND totalDomain = 2 THEN BEGIN set prepValue := subdomainFullAddress || CHAR(2) || prodimainAddress; INSERT INTO sites_tmp SELECT * FROM sites where clientid = tclientid limit 1; UPDATE sites_tmp SET redirectsubdomain = prepValue WHERE clientid = tclientid limit 1; END; ELSE BEGIN set prepValue := prodimainAddress || CHAR(2) || lastDomain || CHAR(1) ||subdomainFullAddress || CHAR(2) || lastDomain; INSERT INTO sites_tmp SELECT * FROM sites where clientid = tclientid limit 1; UPDATE sites_tmp SET redirectsubdomain = prepValue WHERE clientid = tclientid limit 1; END; END IF; END; END IF; END WHILE Scan_Sites; CLOSE curlSites; SET sitedone :=0; END$$ </code></pre> <p>i try in the get few info from column data split his data and bring some data ion there. for each recored on table sites and then update table sites_tmp.</p> <p>i got issue that i not know how i can debug at or make at faster? what ur recommend here? as well why its so slow??? and in the end its not passed the all the records?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload