0
爲了模擬目的,我需要在表中隨機創建行。 我有一個表A可能的情況和一個表B的可能事件與概率列。如何提高CROSS JOIN請求內存消耗
CREATE TABLE Situations (
SituationId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY HASH
);
CREATE TABLE B Events (
EventId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY HASH,
EventProbability DECIMAL(13,10) NOT NULL
);
要創建活動中,我使用CROSS JOIN要求:
CREATE TABLE GeneratedEvents
AS (SELECT SituationId, EventId FROM (SELECT SituationId, EventId, RAND() * 100 AS GenerationProbability, EventProbability FROM Situations CROSS JOIN Events) WHERE GenerationProbability < EventProbability);
我只在內存模式下使用H2數據庫(即與下面的網址爲:jdbc:H2:MEM:DB ),問題在於,在情境表中有大約72k行,在事件表中有600行,我用完了JVM的內存。我使用內存模式能夠並行運行多個JVM。
我想使用CROSS JOIN請求不是最好的解決方案。任何想法如何通過避免創建不必要的記錄來提高內存消耗和執行性能? 謝謝, 洛朗