- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码的一部分。一切正常,没有错误。但我有数百万行要插入。我在互联网上搜索了更快完成工作的方法。
我发现,使用 nologgin 和 +append 在表中插入,但不起作用。即使我使用 nologging 和追加,在表中插入相同行的时间也是相同的。
create or replace procedure read_files(input varchar2, extensie varchar2) as
........................................
Loop
BEGIN
..............................
UTL_FILE.GET_line(F1,V1);
insert /*+ append */ into alarms(alarm_id,property_name,property_value)
=values(alarm_counter,f_property_name,f_property_value) ;
End loop;
end;
alter table alarms nologging;
execute read_files('occ','cap');
alter table alarms logging;
我的工作步骤:
我的错误在哪里?
最佳答案
APPEND 提示仅适用于 INSERT .. SELECT
语句。 APPEND_VALUES暗示 适用于 INSERT .. VALUES
语句。
直接路径插入有一些要求和限制。在尝试 APPEND_VALUES 提示之前,最好先尝试 FORALL。它增加了额外的步骤,但减少了 SQL 和 PL/SQL 之间的上下文切换,这可能会显着提高性能。
declare
type alarm_counter_nt is table of number;
type f_property_name_nt is table of varchar2(100);
type f_property_value_nt is table of varchar2(100);
alarm_counters alarm_counter_nt := alarm_counter_nt();
property_names f_property_name_nt := f_property_name_nt();
property_values f_property_value_nt := f_property_value_nt();
begin
--Get values.
loop
utl_file_get_line(f1, v1);
alarm_counters.extend;
alarm_counters(alarm_counters.count) := ?;
f_property_names.extend;
f_proprety_names(f_property_names.count) := ?;
f_property_values.extend;
f_property_values(f_property_values.count) := ?;
end loop;
--Insert values.
forall i in 1 .. alarm_counters.count
insert into alarms(alarm_id,property_name,property_value)
values(alarm_counters(i),f_property_names(i),f_property_values(i)) ;
commit;
end;
/
关于mysql - NOLOGGING 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31087446/
这是我的代码的一部分。一切正常,没有错误。但我有数百万行要插入。我在互联网上搜索了更快完成工作的方法。 我发现,使用 nologgin 和 +append 在表中插入,但不起作用。即使我使用 nolo
如果我不在 Oracle 的数据库对象中指定 logging/nologging 会发生什么?我的意思是说,在数据库对象中使用日志记录/无日志记录以及在数据库对象中没有日志记录/无日志记录会如何表现?
更新:它在 cmd 中工作,当我从 bash 客户端运行 cmd 时。仍然希望它能在 git bash 中工作,但我有一个解决方法。 我正在尝试在 Windows 上的 git bash 客户端中运行
在 Oracle 中使用 NOLOGGING 时,比如说插入新记录。我的数据库能否从停电中正常恢复?如果它在插入过程中随机下降。 我是否正确地说 UNDO 日志将用于此类恢复......而不是 RED
我是一名优秀的程序员,十分优秀!