SQL.RU
 client/server technologies
 
 Главная | Документация | Статьи | Книги | Форум | Опросы | Рассылка | Работа | Поиск | FAQ |

Добро пожаловать в форум, Guest  >>  Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик  Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 nologging & /*+ APPEND */   [new]
Ewg_
Member

Откуда:
Сообщений: 344
что-то я запутался...
я считал что это взаимозаменяемые опции (т.е. либо таблицу перевести в nologging либо в запросе /*+ APPEND */ )
сейчас (10.2) тестирую - срабатывает только при одновременном наличии !

это я раньше заблуждался, или в 10-ке появилось что-то новое ? или есть еще какой-то параметр настройки?

(раньше я использовал /*+ APPEND */ только для увеличения скорости, и ведь срабатывало! сейчас понадобилось именно REDO уменьшить - смотрю - только при nologging & /*+ APPEND */ не увеличивается)
15 май 06, 12:50    [2664061] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
append и nologging - лошади разных цветов.

Если вы в archivelog - то append не генерирует undo, но генерирует redo, если только на сегменте нет nologging и база не в режиме force logging.

Если вы в noarchivelog - то append не генерирует undo и не генерирует redo.

Главная цель append - это direct path, т.е. писать напрямую выше HWM, минуя buffer cache. Наличие/отсутсвие redo - это уже "побочный фактор".

P.S. Наличие индексов может менять картину.
15 май 06, 13:03    [2664159] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Ewg_
Member

Откуда:
Сообщений: 344
спасибо.
как всё запутано.
15 май 06, 14:08    [2664588] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Q u a d r o
Если вы в archivelog - то append не генерирует undo, но генерирует redo, если только на сегменте нет nologging и база не в режиме force logging.


При чём тут archivelog? ИМХО, archivelog тут ни при чём.

Всё просто. Запросы с хинтом APPEND (точнее метод Direct Load) при некоторых условиях могут не писать добавляемые данные в журнал, что увеличивет производительность и сокращает расход памяти. Наличие признака nologging это одно из таких условий.
15 май 06, 16:36    [2665782] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Заглянул
Member

Откуда: nowhere
Сообщений: 403
2 mcureenab:
Если база в noarchivelog, то как раз logging/nologging ни при чем.
Q u a d r o вроде все правильно написАл.
Важность наличия признака nologging проявляется как раз, когда база в archivelog и индексы на таблице есть.
15 май 06, 17:15    [2666064] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
причём тут архивлог к генерации логов вообще?


-----------------------
Вечны налоги,
Смерть и потеря данных.
Что на этот раз?
Картинка с другого сайта.
15 май 06, 17:39    [2666213] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Дедушка Лёнин
Guest
mcureenab
При чём тут archivelog? ИМХО, archivelog тут ни при чём.

Oleg Afanasiev
причём тут архивлог к генерации логов вообще?

Век живи - век учись
15 май 06, 17:58    [2666301] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Дедушка Лёнин

Век живи - век учись


это такой юмор?

вот обсуждение. В комментарии SY всё поясняется
15 май 06, 18:07    [2666346] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Бабушка Надя
Guest
Oleg Afanasiev
Дедушка Лёнин

Век живи - век учись


это такой юмор?

вот обсуждение. В комментарии SY всё поясняется

Проделай это:
create table t as select * from all_objects where 0=1;
set autotrace on stat
insert /*+ append */ into t select * from all_objects
в режиме ARCHIVELOG и NOARCHIVELOG. И сравни redo size.
15 май 06, 21:47    [2666940] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 5029
2 Oleg Afanasiev. As far as I remember, I was talking about UNDO not REDO.

SY.
15 май 06, 22:52    [2667027] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 11564
Direct Load Insert with Nologging do not Decrease Redo Generation
16 май 06, 02:49    [2667181] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Вячеслав Любомудров
Direct Load Insert with Nologging do not Decrease Redo Generation


Полезная нота.
НО упомянут лишь Enterprise Edition 8.1
Делаю вывод, что для остальных версий всё - таки верно утверждение о снижении генерации реду.
16 май 06, 11:54    [2668394] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
Oleg Afanasiev
Делаю вывод, что для остальных версий всё - таки верно утверждение о снижении генерации реду.

Подумайте - каким образом, кроме отсутсвия redo для защиты undo, его еще можно снизить? Ничего принципиально нового с момента 8.1 в хинте append не изобретено.
16 май 06, 12:14    [2668524] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Q u a d r o

Подумайте - каким образом, кроме отсутсвия redo для защиты undo, его еще можно снизить? Ничего принципиально нового с момента 8.1 в хинте append не изобретено.


Или я тупой, или одно из 2х.

Тоесть, если следовать такой логике, единственная причина уменьшения
реду - это обход(или отсутствие реду для защиты) сегментов отката при операциях
direct path insert??
Насколько я себе представлял, основной фичей является то, что
при direct path insert данные пишутся процессами прямо на диск, минуя кЭш.
Поэтому нет(не должно быть) реду.

Если это НЕ так , то прошу тогда знающих пояснить почему или ссылку.
16 май 06, 13:22    [2668971] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
Oleg Afanasiev
Или я тупой, или одно из 2х.

Тоесть, если следовать такой логике, единственная причина уменьшения
реду - это обход(или отсутствие реду для защиты) сегментов отката при операциях
direct path insert??
Насколько я себе представлял, основной фичей является то, что
при direct path insert данные пишутся процессами прямо на диск, минуя кЭш.
Поэтому нет(не должно быть) реду.

Когда и что пишется - смотрите мой второй пост. Сделайте эксперимент, в конце-то концов и убедитесь сами - тупой вы или нет.

Redo нужно в случае media recovery и если у вас есть standby, поэтому append в режиме archivelog по умолчанию полностью логирутеся, чтобы затем можно было восстановить данные. Полностью залогированный append генерирует меньше редо чем обычный инсерт за счёт отсутсвия redo для защиты undo.
16 май 06, 13:30    [2669019] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Q u a d r o

Redo нужно в случае media recovery и если у вас есть standby, поэтому append в режиме archivelog по умолчанию полностью логирутеся, чтобы затем можно было восстановить данные. Полностью залогированный append генерирует меньше редо чем обычный инсерт за счёт отсутсвия redo для защиты undo.


А вот что в доке(9.2)

С одной стороны:


New Features for Redo Log Files Generated by Oracle9i or Later

For any redo log files generated by Oracle9i or later, LogMiner now provides support for the following:

* Index clusters
* Chained and migrated rows
* Direct path inserts (with ARCHIVELOG mode enabled)
* Extracting the data dictionary into the redo log files. See Extracting a Dictionary to the Redo Logs.
* Using the online catalog as the data dictionary. See "Using the Online Catalog".
* Tracking of all data definition language (DDL) operations, which enables you to monitor schema evolution. See "Tracking DDL Statements".
* Viewing user-executed DDL in the SQL_REDO column. Information regarding the original database user is also returned.
* Generating SQL_REDO and SQL_UNDO with primary key information for updates. That is, updated rows are identified by primary keys and ROWIDs (provided supplemental logging is enabled), thereby making it easier to apply the statements to a different database.



А с другой :



Managing a Physical Standby Database

8.4.6 NOLOGGING or Unrecoverable Operations

When you perform a DML or DDL operation using the NOLOGGING or UNRECOVERABLE clause, the standby database is invalidated and might require substantial DBA administrative activities to repair. You can specify the SQL ALTER DATABASE or SQL ALTER TABLESPACE statement with the FORCELOGGING clause to override the NOLOGGING setting. However, this statement will not repair an invalidated database.

If you perform an unrecoverable operation (such as a direct path load), you will see a performance improvement on the primary database; but there is no corresponding recovery process performance improvement on the standby database, and you will have to move the data manually to the standby database.
See Also:

Section 10.5 for information about recovering after the NOLOGGING clause is used


10.5 Recovering After the NOLOGGING Clause Is Specified

In some SQL statements, the user has the option of specifying the NOLOGGING clause, which indicates that the database operation is not logged in the redo log. Even though the user specifies the clause, a redo log record is still written to the redo log. However, there is no data associated with this record. This can result in log application or data access errors at the standby site and manual recovery might be required to resume log apply operations.
Note:

To avoid these problems, Oracle Corporation recommends that you always specify the FORCE LOGGING clause in the CREATE DATABASE or ALTER DATABASE statements. See the Oracle9i Database Administrator's Guide.




Тест не поможет, та как у меня 8iEE.
16 май 06, 14:54    [2669589] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
Моя последняя попытка разобраться с кашей в вашей голове.

10GR2 archivelog:

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL> create table test as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ append */ into test select * from all_objects;

49225 rows created.


Statistics
----------------------------------------------------------
       6357  recursive calls
        962  db block gets
      79608  consistent gets
          1  physical reads
    5604512  redo size
        657  bytes sent via SQL*Net to client
        587  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      49225  rows processed

10GR2 noarchivelog:

SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL> create table test as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ append */ into test select * from all_objects;

49227 rows created.


Statistics
----------------------------------------------------------
       6210  recursive calls
        964  db block gets
      79561  consistent gets
          1  physical reads
      43512  redo size
        655  bytes sent via SQL*Net to client
        587  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      49227  rows processed

размер redo:

archivelog - 5604512
noarchivelog - 43512
16 май 06, 15:16    [2669778] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Q u a d r o
размер redo:

archivelog - 5604512
noarchivelog - 43512


ок, спасибо за тест.
Факт установлен.
16 май 06, 15:24    [2669841] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Q u a d r o

Redo нужно в случае media recovery и если у вас есть standby, поэтому append в режиме archivelog по умолчанию полностью логирутеся, чтобы затем можно было восстановить данные.


Объясни, пзл., какие физические объекты БД ты понимаешь под redo?

Замечу, что media recovery работает как в archivelog так и в noarchivelog. Вопрос только в глубине хранимых журнальных записей.
16 май 06, 15:25    [2669846] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Oleg Afanasiev
Q u a d r o
размер redo:

archivelog - 5604512
noarchivelog - 43512


ок, спасибо за тест.
Факт установлен.


Факт чего? Из теста очевидно, что (no)archivelog влияет на размер redo, однако не видно, является это влияние непосредственным, или в случае archivelog почему то была проигнорирована опция nologging?
16 май 06, 15:28    [2669873] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
mcureenab
Объясни, пзл., какие физические объекты БД ты понимаешь под redo?


Уфф....

select * from dba_objects where object_type='redo' !!!
16 май 06, 15:28    [2669880] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
mcureenab
Факт чего? Из теста очевидно, что (no)archivelog влияет на размер redo, однако не видно, является это влияние непосредственным, или в случае archivelog почему то была проигнорирована опция nologging?

Ууууу..... еще один.
16 май 06, 15:29    [2669891] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Apex
Member

Откуда: Краснодар
Сообщений: 2548
mcureenab
Oleg Afanasiev
Q u a d r o
размер redo:

archivelog - 5604512
noarchivelog - 43512


ок, спасибо за тест.
Факт установлен.


Факт чего? Из теста очевидно, что (no)archivelog влияет на размер redo, однако не видно, является это влияние непосредственным, или в случае archivelog почему то была проигнорирована опция nologging?

А где ты ее там увидел, эту опцию nologging?
16 май 06, 15:50    [2670002] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Apex
А где ты ее там увидел, эту опцию nologging?


Так в том то и дело, что её там не видно. Во всяком случае меня интересует выполнялся insert в режиме logging или nologging.
16 май 06, 16:04    [2670084] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Apex

А где ты ее там увидел, эту опцию nologging?


хм, а ведь действительно :)
16 май 06, 16:07    [2670103] Ответить | Цитировать    Сообщить модератору

Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить
Generated time: 265ms.
Rambler's Top100 Powered by ActualForum 1.5.3 [s1] Copyright (c) Alex Sibilev 2000-2010