表T1具有约1亿行。唯一键( Key1,Key2,Key3 )的数量约为300万。我将 field1 汇总为以逗号分隔的值,并分组在 Key1,Key2,Key3 上。尝试使用LISTAGG,但是由于4000字节的限制,开始将XMLAGG与getClobVal()一起使用以获取值作为CLOB并写入表中。它已经运行了90多分钟。目前,临时空间使用率约为10%。是否有更好的方法来提高性能?欢迎任何输入。
CREATE TABLE T1_AGGR
AS
Select /*+ PARALLEL */
Key1, Key2, Key3,
rtrim(
xmlagg(
xmlelement( e, field1 || ',' )
).extract( '//text()').getClobVal(), ',' ) dataValue
FROM T1
GROUP BY Key1, Key2, Key3;