我有一些我加入的表,我认为它们非常适合放在一个集群中。但我也希望每周都会向其中插入数据。数据量不是很大——比如每周 5 到 20 条记录。我的理解是集群对您加入和选择的表很有用,但如果您打算在它们上使用 DML 语句,则效果不佳。
我的问题是:当 Oracle 文档说集群与 DML 语句一起使用效率不高时,它们是否指的是更新和删除数百条记录?或者插入的少量记录是否也属于此准则?我的问题本质上是,DML 语句的规模会影响聚类的效率吗?或者它更像是一种二元情况。比如,如果我每天更新一条记录,我应该避免将我的表放在一个集群中吗?
这是我的原始程序,效果很好:
create or replace PROCEDURE EXTRACT_0_CPP AS
CURSOR c_data IS
SELECT cpp,
rfu1,
rfu2,
mean_rfu,
charge_ph7_4,
hydropathy
FROM cpp
ORDER BY LENGTH(cpp);
F1 UTL_FILE.FILE_TYPE;
BEGIN
F1 := UTL_FILE.FOPEN( location => 'EXTRACT_DIR',
filename => '0_cpp.TXT',
open_mode => 'w',
max_linesize => 32767);
FOR cur_rec IN c_data LOOP
UTL_FILE.PUT_LINE (F1,
cur_rec.cpp || ':' ||
cur_rec.rfu1 || ':' ||
cur_rec.rfu2 || ':' ||
cur_rec.mean_rfu || ':' ||
cur_rec.charge_ph7_4 || ':' ||
cur_rec.hydropathy);
END LOOP;
UTL_FILE.FCLOSE(F1);
END;
Run Code Online (Sandbox Code Playgroud)
但是 SQL Developer 在下面给了我一条波浪状的红线,SELECT
并建议我将其更改为:
create or …
Run Code Online (Sandbox Code Playgroud)