Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DDL ALTER TABLE.. / 16 сообщений из 16, страница 1 из 1
13.09.2017, 10:27
    #39520264
proxy_911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
Добрый день коллеги,

Есть Пакетник PKG_1 в нем есть Функция FUNC_1 которые вызывается почти 1000 раз в минуту, и в нем select .ются некая таблица TABLE_1..
Все select -ы написано таким образом
Код: plsql
1.
select column_name from TABLE_1

а не как
Код: plsql
1.
select * from TABLE_1



Вопрос такой: Если я буду добавлять новую колонку на эту таблицу то это не повлияет на обработки заявки Функции ?
То есть при ALTER - е таблицы не нарушается работы функции ?

За каждый ответь буду благодарен..
...
Рейтинг: 0 / 0
13.09.2017, 10:29
    #39520269
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
proxy_911,

Сэмулировать возможности не нашлось?

Будет инвалидация функции с компиляцией при первом обращении.
...
Рейтинг: 0 / 0
13.09.2017, 10:44
    #39520283
Aliona
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
proxy_911Вопрос такой: Если я буду добавлять новую колонку на эту таблицу то это не повлияет на обработки заявки Функции ?
То есть при ALTER - е таблицы не нарушается работы функции ?


Новая колонка будет пустая или чем-то заполнена?
если колонку надо заполнить, нпример дефолтным занчением, а таблица большая, на это понадобиться некоторое время, a ваша функция в это время будет висеть.

Начиная с oracle 10, появился полезный
The DBMS_REDEFINITION package provides an interface to perform an online redefinition of tables.

https://docs.oracle.com/database/121/ARPLS/d_redefi.htm#ARPLS042
...
Рейтинг: 0 / 0
13.09.2017, 11:05
    #39520295
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
Alionaесли колонку надо заполнить, нпример дефолтным занчением, а таблица большая, на это понадобиться некоторое время, a ваша функция в это время будет висетьчё??
...
Рейтинг: 0 / 0
13.09.2017, 11:08
    #39520298
Q.Tarantino
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
--Eugene--Alionaесли колонку надо заполнить, нпример дефолтным занчением, а таблица большая, на это понадобиться некоторое время, a ваша функция в это время будет висетьчё??
блокировочки возникнут, чё :)
...
Рейтинг: 0 / 0
13.09.2017, 11:14
    #39520302
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
Q.Tarantino,

Господа, о каких блокировках идет речь, если в функции, как показал автор, простые селекты?
...
Рейтинг: 0 / 0
13.09.2017, 11:20
    #39520306
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
AmKadо каких блокировках идет речь, если в функции, как показал автор, простые селекты?library cache pin, например.
...
Рейтинг: 0 / 0
13.09.2017, 12:58
    #39520396
Болтаювпт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
ElicAmKadо каких блокировках идет речь, если в функции, как показал автор, простые селекты?library cache pin, например.На время alter table, которое можно сделать коротким - отделить от заполнения данными (которые отдельно dml и перекомпиляции не вызывают). Хотя, как долго будет работать modify column default value при заполненном поле - не проверял. Опять же, какая именно часть ddl будет блокировать library cache и сколько она длится, и каким номером она идет в последовательности выполнения, надо смотреть экспериментально. Ну и, если всё совсем критично, есть dbms_redefinition.
...
Рейтинг: 0 / 0
13.09.2017, 14:21
    #39520461
proxy_911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
Aliona,

Таблица не большая, все значении новой колонки будет "0" по дефолту.
Версии БД 12С.
...
Рейтинг: 0 / 0
13.09.2017, 14:24
    #39520465
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
proxy_911Таблица не большаяесли не большая, тогда че паришься вообще?
...
Рейтинг: 0 / 0
13.09.2017, 14:26
    #39520466
proxy_911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
AmKad,

На Функции, не простые Select - ы.. Там 1600 строк кода с разнообразными условиями.
...
Рейтинг: 0 / 0
13.09.2017, 14:32
    #39520471
proxy_911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
--Eugene--proxy_911Таблица не большаяесли не большая, тогда че паришься вообще?

Запрос для Alter - а длится около 1-2 сек.. В эти 1-2 сек Функция выполняется 10-15 раз, и как себя ведет во время компиляции.?
...
Рейтинг: 0 / 0
13.09.2017, 14:36
    #39520476
proxy_911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
БолтаювптElicпропущено...
library cache pin, например.На время alter table, которое можно сделать коротким - отделить от заполнения данными (которые отдельно dml и перекомпиляции не вызывают). Хотя, как долго будет работать modify column default value при заполненном поле - не проверял. Опять же, какая именно часть ddl будет блокировать library cache и сколько она длится, и каким номером она идет в последовательности выполнения, надо смотреть экспериментально. Ну и, если всё совсем критично, есть dbms_redefinition.

Спасибо, Болтаювпт смотрю dbms_redefinition..
...
Рейтинг: 0 / 0
13.09.2017, 14:40
    #39520480
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
proxy_911Болтаювптпропущено...
На время alter table, которое можно сделать коротким - отделить от заполнения данными (которые отдельно dml и перекомпиляции не вызывают). Хотя, как долго будет работать modify column default value при заполненном поле - не проверял. Опять же, какая именно часть ddl будет блокировать library cache и сколько она длится, и каким номером она идет в последовательности выполнения, надо смотреть экспериментально. Ну и, если всё совсем критично, есть dbms_redefinition.

Спасибо, Болтаювпт смотрю dbms_redefinition..

хрен редьки не слаще )))
...
Рейтинг: 0 / 0
14.09.2017, 11:31
    #39520987
orac_list
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
AlionaНовая колонка будет пустая или чем-то заполнена?
если колонку надо заполнить, нпример дефолтным занчением, а таблица большая, на это понадобиться некоторое время, a ваша функция в это время будет висеть.


Начиная с 11g при добавлении колонки с default not null все изменения проходят мнгновенно, т.к. меняется только информация в словаре.

When you add a column, the initial value of each row for the new column is null.

If you specify the DEFAULT clause for a NOT NULL column, then the default value is stored as metadata but the column itself is not populated with data. However, subsequent queries that specify the new column are rewritten so that the default value is returned in the result set.

This optimized behavior differs from earlier releases, when as part of the ALTER TABLE operation Oracle Database updated each row in the newly created column with the default value, and then fired any update triggers defined on the table. In this release, no triggers are fired because the default is stored only as metadata

https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_3001.htm#i2054940
...
Рейтинг: 0 / 0
14.09.2017, 11:33
    #39520992
orac_list
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL ALTER TABLE..
orac_listAlionaНовая колонка будет пустая или чем-то заполнена?
если колонку надо заполнить, нпример дефолтным занчением, а таблица большая, на это понадобиться некоторое время, a ваша функция в это время будет висеть.


Начиная с 11g при добавлении колонки с default not null все изменения проходят мнгновенно, т.к. меняется только информация в словаре.

When you add a column, the initial value of each row for the new column is null.

If you specify the DEFAULT clause for a NOT NULL column, then the default value is stored as metadata but the column itself is not populated with data. However, subsequent queries that specify the new column are rewritten so that the default value is returned in the result set.

This optimized behavior differs from earlier releases, when as part of the ALTER TABLE operation Oracle Database updated each row in the newly created column with the default value, and then fired any update triggers defined on the table. In this release, no triggers are fired because the default is stored only as metadata

https://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_3001.htm#i2054940

А в 12с эту оптимизацию еще расширили на nullable колонки.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DDL ALTER TABLE.. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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