2014-10-09 3 views
1

У меня есть sql-скрипт, который создает мои приложения, таблицы, последовательности, триггеры и т. Д. & вставляет около 10 тыс. Строк данных.Запуск sql-скрипта в медленной сети

Я нахожусь в медленной сети, и когда я запускаю этот скрипт с моей локальной машины, требуется много времени для завершения. Хотите узнать, есть ли поддержка в sqlplus (или sqldeveloper) для запуска этого скрипта на сервере. Таким образом, весь сценарий сначала переносится на сервер, а затем возвращается, скажем, файл журнала выполнения.

+0

Может быть, вы могли бы создать скрипт или подобный на сервере для запуска SQL скрипта. –

+0

Да, но у вас нет такого доступа к серверу или совместно расположенному аппарату. – 6ton

+0

Насколько велик файл, насколько медленный и медленный, и как долго «длинный»? –

ответ

0

Нет, нет. Есть некоторые вещи, которые вы можете сделать, которые могут ускорить загрузку данных, например, использовать загрузчик sql, если вы делаете отдельные вставки, и увеличиваете интервал фиксации. Тем не менее, мне бы очень хотелось, чтобы код очень помог.

+0

Yup, я добавил коммиты. Кроме того, ограничения создаются после импорта данных. Но, к сожалению, нет способа обойти сеть hop :( – 6ton

0

Если у вас есть доступ к удаленному серверу, на котором размещена база данных, и у вас есть доступ к выполнению sqlplus на указанном сервере, вы можете это сделать.

  1. Войти или SSH (в зависимости от ОС - Windows, или * NIX) на сервер
  2. Создать свой SQL скрипт (myscript.sql) там.
  3. Войти в SQL * Plus и выполнить с помощью команды @ myscript.sql
0

Существует редко возникает необходимость запускать эти виды скриптов на сервере. Несколько простых изменений командных команд могут значительно повысить производительность. Все приведенные ниже изменения объединяют несколько операторов, что сокращает количество сетевых поездок. Некоторые из них также уменьшают время разбора, что значительно улучшит производительность, даже если скрипты выполняются на сервере.

комбинат Вставки в одном операторе

Заменить отдельные вставки:

insert into some_table values(1); 
insert into some_table values(2); 
... 

с Combind вставками, как это:

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; 

с/SQL блок PL:

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;