Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在慢速网络上运行sql脚本_Oracle_Sqlplus - Fatal编程技术网

Oracle 在慢速网络上运行sql脚本

Oracle 在慢速网络上运行sql脚本,oracle,sqlplus,Oracle,Sqlplus,我有一个sql脚本,它可以创建我的应用程序表、序列、触发器等,并插入大约10000行数据 我在一个缓慢的网络上,当我从本地机器上运行这个脚本时,需要很长时间才能完成。 不知道sqlplus或sqldeveloper是否支持在服务器上运行此脚本。因此,整个脚本首先传输到执行的服务器,然后返回执行日志文件。不,没有。您可以做一些事情来加快数据加载速度,例如在执行单个插入时使用sql loader,以及增加提交间隔。但是,我必须查看代码才能真正起到很大的帮助。如果您有权访问数据库所在的远程服务器,并且

我有一个sql脚本,它可以创建我的应用程序表、序列、触发器等,并插入大约10000行数据

我在一个缓慢的网络上,当我从本地机器上运行这个脚本时,需要很长时间才能完成。
不知道sqlplus或sqldeveloper是否支持在服务器上运行此脚本。因此,整个脚本首先传输到执行的服务器,然后返回执行日志文件。

不,没有。您可以做一些事情来加快数据加载速度,例如在执行单个插入时使用sql loader,以及增加提交间隔。但是,我必须查看代码才能真正起到很大的帮助。

如果您有权访问数据库所在的远程服务器,并且有权在所述服务器上执行sqlplus,那么您当然可以

根据OS-Windows或*nix登录或SSH到 服务器 在那里创建您的SQL脚本myscript.SQL。 登录到SQL*Plus并使用命令@myscript.SQL执行
很少需要在服务器上运行这些类型的脚本。对批处理命令进行一些简单的更改可以显著提高性能。下面的所有更改合并了多个语句,减少了网络往返次数。其中一些还减少了解析时间,这将显著提高性能,即使脚本在服务器上运行

将插入合并到单个语句中

更换单个插入件:

insert into some_table values(1);
insert into some_table values(2);
...
使用如下组合插入:

insert into some_table
select 1 from dual union all
select 2 from dual union all
...
使用PL/SQL块

替换单个DDL:

create sequence sequence1;
create sequence sequence2;
使用PL/SQL块:

begin
    execute immediate 'create sequence sequence1';
    execute immediate 'create sequence sequence2';
end;
/
使用内联约束

尽可能多地组合DDL。例如,使用以下语句:

create table some_table(a number not null);
与此相反:

create table some_table(a number);
alter table some_table modify a not null;

也许您可以在服务器上创建一个shell脚本或类似的脚本来运行SQL脚本。是的,但是您没有访问服务器或同一台机器的权限文件有多大,“慢”有多慢,“long”有多长?@BobJarvis该文件大约有110MB,包含大约375500行脚本~500行DDL,执行大约需要一个小时。对不起,我是说你的网络连接有多慢?它是如此的慢,以至于…钻头与毛毛虫进行了阻力赛跑。。。升级到烟雾信号时,您将提高波特率。。。它的速度以位/月为单位,你可以用一只手数一数-是的,我确实添加了提交。此外,还将在导入数据后创建约束。但不幸的是,无法绕过网络跳跃: