powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тестовое задание. Удаление данных в таблице по дате.
7 сообщений из 7, страница 1 из 1
Тестовое задание. Удаление данных в таблице по дате.
    #40101165
Евгения_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Дали тестовое задание:
"Несколько таблиц, достаточно большого объема с ежедневным приростом в ~1 млн строк.
Требуется реализовать процедуру очистки данных.
Процедура должна по названию таблицы и дате удалять весь объем данных старее этой даты".

Понятно, что в простейшем случае просто delete по дате.
Но смущает фраза: "таблиц, достаточно большого объема с ежедневным приростом в ~1 млн строк" .
Как такие операции обычно делают в хранилищах данных?
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101180
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгения_Д,

1 млн. строк - это не много в текущих реалиях, можно за один присест удалить.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select count(*) from sh.sales;

  COUNT(*)
----------
    918843

Elapsed: 00:00:00.00
SQL> delete from sh.sales;

918843 rows deleted.

Elapsed: 00:00:16.49



Или хотят что-то конкретнее увидеть (типа удаления порциями)?
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101181
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгения_Д
Как такие операции обычно делают в хранилищах данных?


Это задача DBA - делать индексы, партиции.

На мой взгляд, у вас простая задача на написание динамического SQL.
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101189
Евгения_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm

Это задача DBA - делать индексы, партиции.
На мой взгляд, у вас простая задача на написание динамического SQL.

А может быть нужно сделать что-нибудь типа:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table abc1 as 
select * from abc
where dat < p_date

Далее:
truncate abc;

insert into abc
select * from abc1;

truncate abc1;



Чтобы не увеличивать undo?
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101192
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгения_Д

"Несколько таблиц,


от схемы зависит, в некоторых (подчиненных) таблицах даты может и не быть,
а каскадное удаление не используетcя

но мож от Вас хотят простого execute immediate ...

.....
stax
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101207
mnbvcx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может циклом надо удалять и коммитить порциями по 100 строк?
...
Рейтинг: 0 / 0
Тестовое задание. Удаление данных в таблице по дате.
    #40101211
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгения_Д
А может быть нужно сделать что-нибудь типа:
Код: plsql
1.
2.
3.
alter table <table> move including rows where <условие оставляемых данных>;
alter index ... 
alter index ... 
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тестовое задание. Удаление данных в таблице по дате.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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