Warum die Abfrageleistung stark sinkt, wenn ich die Abfrage "INSERT ALL" größer als etwa 600 Datensätze in Oracle verwende? Können Sie mir beibringen?Warum die Abfrageleistung stark sinkt, wenn Datensätze> ungefähr 600
Ich verwende Spring + Mybatis + Oracle
Es folgt meiner Anfrage.
INSERT ALL
<foreach collection="list" item="record">
INTO tablename (
a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
k,
l,
m,
n,
o
) VALUES (
#{a},
#{b},
#{c},
#{d},
#{e},
#{f},
#{g},
#{h},
#{i},
#{j},
#{k},
#{l},
#{m},
#{n},
#{o}
)
</foreach>
SELECT 1 FROM dual
(I geändert Spalte und den Namen der Variablen. Ober Abfrage funktioniert)
Bitte helfen Sie mir ~
Das erste, was ich versuchen würde, um herauszufinden, was das Problem ist: Führen Sie die Fragen Sie in Ihrem Oracle Developer (oder dem von Ihnen verwendeten Tool) nach, ob es dort auch langsam ist. Wenn ja, dann ist das Problem Ihre Anfrage. Wenn nicht, ist das Problem auf der Java-Seite. –
@FlorianSchaetz Ich habe die obere Abfrage in Oracle Developer ausgeführt, und die Leistung war nicht schlecht (natürlich habe ich "INTO Satz" mehr als 600 Mal ohne mybatis kopiert). Also habe ich es in JAVA "ohne Mybatis" versucht und die Leistung war gut genug. Ich denke, mybatis kann ein Problem sein. Vielen Dank! Ihr Kommentar war hilfreich. –
Völlig möglich, schwer zu sagen, ohne es wirklich zu profilieren. Aktivierungsprotokollierung wäre ein erster Schritt, um zu sehen, wo es langsam wird, der nächste würde Profiling sein. –