powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Create table или Update?
7 сообщений из 7, страница 1 из 1
Create table или Update?
    #39634588
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть таблица на 200 млн строк (t1). К ней нужно добавить столбец с данными из другой таблицы аналогичного размера (t2). Соответствие по столбцу 1 взаимно-однозначное (одна запись к одной).

Есть вариант сделать это через CREATE TABLE и JOIN:
Код: sql
1.
2.
3.
4.
5.
6.
7.
create table T as
select 
t1.col1 c1
t2.col2 c2
from t1
left join t2
on t1.col1=t2.col1


И есть вариант через UPDATE, предварительно создав в таблице t1 дополнительный пустой столбец:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
update t1
set t1.col2 =
(
select t2.col2 
from t2
where t2.col1=t1.col1
)


Update работает в десятки раз медленнее, но он предпочтительнее, так как нужно будет делать несколько таких операций (то есть присоединять новые столбцы в существующую таблицу). Есть способ как-то ускорить запрос с update, чтобы каждый раз не создавать и не удалять таблицу по 200 млн строк через CREATE TABLE и JOIN? Или может быть такую задачу по присоединению нового столбца правильнее решать каким-то другим способом? Спасибо.
...
Рейтинг: 0 / 0
Create table или Update?
    #39634618
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
MERGE
...
Рейтинг: 0 / 0
Create table или Update?
    #39634621
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomon Соответствие по столбцу 1 взаимно-однозначное (одна запись к одной).


глянуть мож вьшка updateble
....
stax
...
Рейтинг: 0 / 0
Create table или Update?
    #39634632
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic, спасибо! А MERGE значительно быстрее, чем UPDATE должен работать в данном случае?
...
Рейтинг: 0 / 0
Create table или Update?
    #39634634
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, не понял совет. Можете пояснить?
...
Рейтинг: 0 / 0
Create table или Update?
    #39634674
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonStax, не понял совет. Можете пояснить?Бери merge и не парься. Парься только если не хватит temp/undo.
...
Рейтинг: 0 / 0
Create table или Update?
    #39634678
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonStax, не понял совет. Можете пояснить?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
SQL> create table t2(id2 int primary key,n2 varchar2(10));
create table t2(id2 int primary key,n2 varchar2(10))
             *
ERROR at line 1:
ORA-00955: name is already used by an existing object


SQL> select * from t1;

        ID N
---------- ----------
         1
         2
         3 Три

SQL> select * from t2;

       ID2 N2
---------- ----------
         1 One
         2 Two

SQL> update (select * from t1,t2 where t1.id=t2.id2) set n=n2;

2 rows updated.

SQL> select * from t1;

        ID N
---------- ----------
         1 One
         2 Two
         3 Три

SQL>



....
stax
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Create table или Update?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]