我在存储过程中的查询执行时间更长

时间:2015-06-11 10:58:18

标签: mysql sql stored-procedures

我正在尝试编写用于更新数据库的脚本

我在存储过程中的查询执行时间比临时表

中的查询要长

临时表:2分钟

在存储过程中查询= 12分钟

临时表

DROP TABLE IF EXISTS csii;
     create table csii
     SELECT 
         csii_id,
         csii_fk_cc,
         csii_s, csi_p, 
         csi_c_a,
         csi_o_p,
         csi_shi_c,
         csi_xc_s,
         csi_wei,
         csi_fk_c_at,
         csi_sta
     FROM
           cs
    WHERE 
          csii.sta = 'a';

存储过程

     DROP PROCEDURE IF EXISTS GetAllProducts;
     SELECT * FROM csii;
     DELIMITER |

      CREATE PROCEDURE GetAllProducts ()
      BEGIN
          DECLARE csii_id INT;
          DECLARE csii_fk_cc INT;
          DECLARE csii_s VARCHAR(255);
          DECLARE csi_p DECIMAL;
          DECLARE csi_c_a DATE;
          DECLARE csi_o_p DECIMAL;
          DECLARE csi_shi_c DECIMAL;
          DECLARE csi_xc_s VARCHAR(20);
          DECLARE csi_wei VARCHAR(20);
          DECLARE csi_fk_c_at INT;
         DECLARE csi_sta enum('a','i','d');

     SELECT 
        id, fk_cc, s, p, c_a, o_p, shi_c, xc_s, wei, fk_c_at, sta
     INTO 
        csii_id, csii_fk_cc, csii_s, csi_p, csi_c_a, csi_o_p, csi_shi_c,
         csi_xc_s, csi_wei, csi_fk_c_at, csi_sta
 FROM 
        csii
 WHERE 
        csi_sta = sta AND csi_sta = 'a';

END|
DELIMITER ;

我需要你的帮助。 谢谢你的帮助。

0 个答案:

没有答案