Отображение прогресса выполнения в PL/SQL-программах

Поділитися
Вставка
  • Опубліковано 2 гру 2024

КОМЕНТАРІ • 15

  • @tomozi1
    @tomozi1 Рік тому

    Полезно, спасибо

  • @jenjao7548
    @jenjao7548 3 роки тому

    Спасибо, очень полезно 👍

  • @andrewkondrashov6485
    @andrewkondrashov6485 3 роки тому

    Супер

  • @brutozavr
    @brutozavr 3 роки тому

    спасибо

  • @obsidee
    @obsidee 2 роки тому

    каждую секунду считывать таблицу v$session_longops?

    • @OracleDBD
      @OracleDBD  2 роки тому

      считываете с тем интервалом, с которым удобно.

  • @askat25
    @askat25 3 роки тому

    Вы в качестве примера используете select count, а как посмотреть прогресс на мосент исполнения insert?, к примеру есть таблица куда инсертится примерно 5 миллионов записей, но мы незнаем какое количество в итоге выйдет и хотелось бы видеть прогресс?!

    • @OracleDBD
      @OracleDBD  3 роки тому

      5М записей как генерится? если чтением из другой таблиц(ы) insert-select и операция занимает продолжительное время - СУБД автоматом отобразит примерный прогресс. Если 5М в цикле, например, то можете самим навесить прогресс.

    • @askat25
      @askat25 3 роки тому

      @@OracleDBD в цикле идет select, а дальше идет insert в таблицу. А как самим навести примерчик скинете)))

    • @OracleDBD
      @OracleDBD  3 роки тому

      @@askat25 так в видео один в один примеры

    • @askat25
      @askat25 3 роки тому

      @@OracleDBD в цикле идет огромный и сложный запрос с подзапросами я не могу туда применить count как в вашем случае

    • @askat25
      @askat25 3 роки тому

      @@OracleDBD
      как вот в таких случаях узнать, что идет процесс insert'а
      for rec in (здесь огромный и сложный запрос) loop
      insert into table (field1, field2 ...)
      values (rec.field1, rec.field2 ...)
      end loop;
      Этот цикл запускает определенный job потому что 5 млн записей.

  • @ЛучшийвМире-ь4м
    @ЛучшийвМире-ь4м 3 роки тому

    Спасибо за видео. А можно ли подобное проделать с обычным sql запросом? Или они попадают в представление v$ только по каким-то критериям? И если можно, то как интерпретировать содержимое v$session_longops?

    • @OracleDBD
      @OracleDBD  3 роки тому +1

      Только для тяжелых запросов, в которых Oracle может оценить трудоемкость. Например, полное сканирование таблицы для построения индекса. Размер таблицы есть, количество строк есть + другие метрики. Оракл сам автоматом посчитает.
      Самому считать запрос... ну хз. надо ли.
      Описание полей v$session_longops есть в доке:
      docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/V-SESSION_LONGOPS.html#GUID-F2802C36-066C-493E-8255-C08CC79B87FB