我正在爲一臺機器構建一個監控應用程序,位置必須在一個月內每秒鐘讀取和存儲。我寫了一個程序來填充一個具有初始0值的表格。機器監控應用程序(mysql)
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(start_date datetime, end_date datetime)
BEGIN
DECLARE interval_var INT DEFAULT 1;
WHILE end_date >= start_date DO
INSERT INTO table1(datetime, value) VALUES(start_date, 0);
SET start_date = DATE_ADD(start_date, INTERVAL interval_var SECOND);
END WHILE;
END
這個過程非常慢,並且大部分時間與sql數據庫的連接丟失。例如,當我嘗試填寫表格「2016-01-14 07:00:00」到「2016-01-15 07:00:00」時,程序已達到2016-01-14 07:16:39以及由於與數據庫的連接丟失而墜毀。
是否有更有效的方法來創建一個月份的第二個增量和0值的模板表?我的監控應用程序建立在vb.net上,我試圖在vb上創建一個代碼來創建這個模板表,但它比mysql工作站上的直接過程更慢,更有可能崩潰。
您應該可以使用準備好的查詢來完成此操作,該查詢旨在準備一次並運行多次。儘管你的存儲過程也應該這樣做。 – miken32