Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PL/SQL Developer 10, Это с-ка офигенно! 
:(
    Опции темы
Zloxa
Дата 15.3.2013, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Почитал ньюфичез PL/SQL Developer'a 10

И вычитал для себя пару мастхавных:
Цитата

Debugger enhancements
When execution of the debug session is halted at a breakpoint or when you are stepping through executed lines of code, you can now press the new "Execute SQL in debugger session" button to execute a SQL statement at that point of program execution. You can for example alter the session state, insert/update/delete records, commit or rollback a transaction, and so on. You can also execute a select statement to view a result set within the debug session:
user posted image

Цитата

DBMS_Output can now be viewed while debugging:
user posted image
user posted image


И пару весьма приятственных:
Цитата

The SQL Window and Report Window now support multi-select substitution variables that allow you execute queries with set expressions:
user posted image


Цитата

The Program Window can now check for changes in the database object, so that you are immediately aware when someone else has changed the object you are working with:
user posted image
You can view the differences between your version and the version in the database and you can choose to reload the changes into the Program Window.


Надо апаться smile

Это сообщение отредактировал(а) Zloxa - 15.3.2013, 10:06


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 18.3.2013, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Zloxa @  15.3.2013,  11:05 Найти цитируемый пост)
DBMS_Output can now be viewed while debugging:

Так это вроде запрещено самим Ораклом, нет?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 18.3.2013, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(LSD @  18.3.2013,  11:33 Найти цитируемый пост)
Так это вроде запрещено самим Ораклом, нет? 

Фигзна - в это я не вникал smile 

Я так понимаю оба первых пункта, обозначенных мною как мастхавными сводятся к возможности выполнять запросы или pl/sql блоки в контексте сессии, которая стоит на точке останова по дебугу. Запрещено ли это ораклом? Думаю - врядли. Можно ли так было поступать в восьмерке, девятке, десякте,  или же это фича одиннадцатки, двеннадцатки - не зна. (В коцне концов считать значения локальных переменных из стоящей по дебугу сессии - как -то можно) Если это старая фича, что мешало эту фичу реализовать раньше - не зна

НО фича - мастхав - факт smile


Это сообщение отредактировал(а) Zloxa - 18.3.2013, 10:52


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 18.3.2013, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Вот статейка где объясняется почему результаты DBMS_OUTPUT не видны до конца работы PL/SQL.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 18.3.2013, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



LSD, не мог бы ты указать место где описаны причины. Я с ходу не выявил его.

dbms_sql умоминается только в этом контексте
Цитата

This is actually safe because the results of DBMS_OUTPUT.PUT_LINE are invisible until after the PL/SQL block returns.


Здесь скорее о следствиях нежели о причинах.


DBMS_OUTPUT сохраняет информацию в output буфере, который находится в контексте сессии. В один момент времени, сессия может либо выполнять клиентский  запрос(под запросом имеется в виду запрос с клиента - будь то фетч, будь то выпонение запроса, будь то выполнение pl/sql блока). Либо ждать когда этот клиентский запрос поступит. Т.о. До тех пор, пока PL/SQL блок выполняется, контекст сессии оказывается не доступен для чтения, т.к. сессия не доступна для клиентских запросов. Но в случае остановки по брикпойнту...

В пакете dbms_debug есть процедура execute, которая позволяет выполнить операцию в контексте отлаживаемой сессии, если та находится в режиме ожидания. В двеятошной версии ее спецификация на первый взгляд не отличается от одинатошной. Соответственно, нет, наверное , ничего военного в том, чтобы оформить dmbs_output.get_line из отладочной сессии, запустить его в отлаживаемой и получить биндом результат в отладночной.

Я хотел было набрать примерчик, потрогать эту процедурку ручками, да на разных версиях, но на работе не получается сосредоточиться на этой важной задаче - отвлекают по всяким пустякам. Оставлю до лучших времен.

Это сообщение отредактировал(а) Zloxa - 18.3.2013, 14:43


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 18.3.2013, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Zloxa @  18.3.2013,  15:26 Найти цитируемый пост)
Здесь скорее о следствиях нежели о причинах.

Возможно и так, тогда еще один минус в карму Оракла smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 18.3.2013, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(LSD @ 18.3.2013,  17:00)
Цитата(Zloxa @  18.3.2013,  15:26 Найти цитируемый пост)
Здесь скорее о следствиях нежели о причинах.

Возможно и так, тогда еще один минус в карму Оракла smile

Глубина этой мысли мне не понятна.
Не понятно даже о чем эта мысль и причем здесь оракл.
smile

Какие - то другие клиент-серверные системы позволяют опрашивать сессию в тот момент, когда она занята и не ждет запросов? smile

Это сообщение отредактировал(а) Zloxa - 18.3.2013, 16:08


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 19.3.2013, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Zloxa @  18.3.2013,  17:03 Найти цитируемый пост)
Глубина этой мысли мне не понятна.
Не понятно даже о чем эта мысль и причем здесь оракл.

Это к вопросу о том соблюдении ACID.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 19.3.2013, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(LSD @ 19.3.2013,  10:20)
Цитата(Zloxa @  18.3.2013,  17:03 Найти цитируемый пост)
Глубина этой мысли мне не понятна.
Не понятно даже о чем эта мысль и причем здесь оракл.

Это к вопросу о том соблюдении ACID.

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

Минус в кармну не засчитнан.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 19.3.2013, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Zloxa @  19.3.2013,  12:28 Найти цитируемый пост)
Лэйзи коммиты благо в куда большем числе кейсов. А когда дейсвтительно нужны суровые коммиты, их никто вроде как не запрещает.

Ты пропустил одно важное дополнение, неявные. Там вся фишка в том, что для PL/SQL ленивые комиты включаются неявно: отдельный параметр и включены по умолчанию.
Если уж ленивый комит такое бобро в большем числе кейсов, почему умолчальное поведение для обычного SQL это WAIT?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 19.3.2013, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(LSD @  19.3.2013,  12:46 Найти цитируемый пост)
почему 

smile
Могу лишь предполагать, что, возможно, потому, что вероятность того, что внешнее приложение использует для коммуникации нетранзакционные средства - куда выше.



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 19.3.2013, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Не понял, как это связано с поведением Оракла?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 19.3.2013, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



LSD, я действительно не понимаю что у тебя вызывает зуд. Так вобще - вроде все нормально. Как верно заметил автор приведенной тобой статьи, это может приводить к ложному информированию о фиксации транзакции внешних систем, лишь в случае, если в процедуре используются нетранзакционные средства информирования (utl_tcp, utl_file упомянутые автором).

К сожалению я не нашел сейчас в документации, но много раз встречал ранее в других источниках, что сброс на диск зафиксированных в pl/sql транзакций производится при возврате управления из PL/SQL. Автор статьи это вроде как подтверждает экспериментально.

Т.о. пусть ты выполняешь процедуру

Код

procedure test
is
begin
   insert into table values (1);
   commit;
   insert into table values (2);
   commit;
   -- здесь был последний сброс на диск, инициированный либо таймером, либо другим приложением
   insert into table values (3);
   commit;
   insert into table values (4);
   commit;
  -- здесь нас рубануло
   insert into table values (5);
   commit;
end; -- здесь произошел бы сброс на диск, если бы мы до сюда дошли 


Итак, после того как нас рубануло, мы будем иметь в базе записи 1 и 2.
Клиентское приложение не информировано об успешном завершении работы процедуры, при восстановлении работоспособности, процедура должна будет быть вызвана повторно.
Транзакции, успевшие увидеть записи 3 и 4, так же не сбросились на диск и были не восстановлены, можно сказазать что их никогда и не было.

В чем разница, рубануло бы нас на вставке значения 3 или рубануло нас после ленивого коммита значения 4?



Это сообщение отредактировал(а) Zloxa - 19.3.2013, 13:16


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Zloxa
Дата 19.3.2013, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Zloxa @  19.3.2013,  13:38 Найти цитируемый пост)
В чем разница, рубануло бы нас на вставке значения 3 или рубануло нас после ленивого коммита значения 4?

Придумал кейс.
Эти записи могла успеть считать какая-то другая система и успеть на их основании принять и сохранить решение в не подконтрольном транзакционной системе оракла контексте.

Кейс несколько высосан из пальца, мне думается, но всяко может хаппенс. Но выглядит этот кейс все-же скорее весьма и весьма исключительным, в таких случаях, действительно определенно нужен write immediate wait;

Это сообщение отредактировал(а) Zloxa - 19.3.2013, 13:49


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
LSD
Дата 19.3.2013, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Zloxa @  19.3.2013,  13:53 Найти цитируемый пост)
Эти записи могла успеть считать какая-то другая система и успеть на их основании принять и сохранить решение в не подконтрольном транзакционной системе оракла контексте.

Именно.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0787 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.