|
|
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
Удаляю записи из большой таблицы, записей десятки миллонов. В таблице поля только двух типов данных: integer и nvarchar. По таблице построены индексы. Поле nvarchar ни в один из индексов не входит. На сервере кроме сессии удаления никто не работет. База нежурналируемая. Запускаю удаление - идут fuzzy checkpoints. Останавливаю сессию, меняю некоторые параметры сервера (LRU max и min), перезапускаю сервер, снова запускаю удаление. Теперь идут full checkpoints. Вопрос - почему произошла смена типов чекпоинтов ? В обоих случаях чекпоинты происходили при заполнении физ. журнала на 75 %. Может это как-то связано с перестройкой индексов в процессе удаления записей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 09:49 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
Как я понимаю, значения LRI min/max ты уменьшал, в надежде избежать заполнения физжурнала на 3/4 и срабатывания длинных чекпойнтов ? Трудно сказть, что именно повлияло на смену типа КТ...Нужно почитать подробнее о fuzzy checkpoint и при каких операциях он не срабатывает. Но я хотел спросить, а почему на время этой операции не отключить индексы ? Тогда операция удаления шла бы значительно быстрее и однократная перестройка индекса при включении после чистки таблицы, могла бы с лихвой компенсироваться этой экономией времени. Но это если удаляется достаточно много строк и времени нужно много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 15:52 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
По времени удаление с отключением индексов и последующим включением (т.е. сумма времени потраченного на удаление при отключенных индексах и времени на включение индексов на таблице) получается сопоставимо с обычным удалением. Правда с отключением все таки немного (процентов на 15-20) быстрее (хотя может это просто погрешность эксперимента). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 16:56 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
AndronУдаляю записи из большой таблицы, записей десятки миллонов. В таблице поля только двух типов данных: integer и nvarchar. По таблице построены индексы. Поле nvarchar ни в один из индексов не входит. На сервере кроме сессии удаления никто не работет. База нежурналируемая. Запускаю удаление - идут fuzzy checkpoints. Останавливаю сессию, меняю некоторые параметры сервера (LRU max и min), перезапускаю сервер, снова запускаю удаление. Теперь идут full checkpoints. Вопрос - почему произошла смена типов чекпоинтов ? В обоих случаях чекпоинты происходили при заполнении физ. журнала на 75 %. Может это как-то связано с перестройкой индексов в процессе удаления записей ? 1. Fuzzy checkpoints не имеют отношения к выполняемой сервером работе - они либо есть (все время), либо их нет. 2. Удаление на нежурналируемой базе не является фазируемой операцией, поскольку суть fuzzy checkpoint - использовать логические логи вместо физического. Поскольку база нежурналируемая, ничего в логические логи не пишется. 3. By default, сервер выполняет fuzzy checkpoints (есть ситуации, когда он выдолняет полные, но это разовые ситуации ). 4. ИЗменить поведение сервера можно при помощи конфиг параметра / переменной окружения NOFUZZYCKPT 1 http://dbforums.com/t922152.html 5. Очевидно, либо этот параметр был прописан в конфиге, либо переменная выставлена. ПОсле рестарта новое значение стало актуальным и сервер перестал выполнять fuzzy checkpoints. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 17:56 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
vybegallo 1. Fuzzy checkpoints не имеют отношения к выполняемой сервером работе - они либо есть (все время), либо их нет. Вот тебе навскидку кусочек лога, где типы checkpoint чередуются сами по себе, без вмешательства админа. Чем пояснить ? 20:25:22 Fuzzy Checkpoint Completed: duration was 12 seconds, 5253 buffers not flushed. 20:25:22 Checkpoint loguniq 36, logpos 0x8985cc 20:25:22 Maximum server connections 2 20:28:48 Logical Log 36 Complete. 20:30:46 Fuzzy Checkpoint Completed: duration was 20 seconds, 2466 buffers not flushed. 20:30:46 Checkpoint loguniq 37, logpos 0xb7dcc 20:30:46 Maximum server connections 2 20:36:00 Checkpoint Completed: duration was 14 seconds. 20:36:00 Checkpoint loguniq 37, logpos 0x78d018 20:36:00 Maximum server connections 2 20:36:03 Checkpoint Completed: duration was 0 seconds. 20:36:03 Checkpoint loguniq 37, logpos 0x78e150 20:36:03 Maximum server connections 2 20:41:03 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed. 20:41:03 Checkpoint loguniq 37, logpos 0x790044 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 21:40 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
RTFM ! See the last case. - admin guide ------- Checkpoints and Fast Recovery 23-7 Events That Initiate a Full Checkpoint In the following situations, the database server performs a full checkpoint to ensure the physical consistency of all data on disk: - When you issue onmode -ky to shut down the database server - When you initiate a checkpoint from the command line with onmode -c - When you initiate a checkpoint from the ON-Monitor Force-Ckpt menu ¨ - When you convert the database server to a newer version or revert to a previous version - When you perform a backup or restore using ontape - When you perform a backup or restore using ON-Bar The backup tool performs a full checkpoint automatically to ensure the physical consistency of all data before it writes it to the backup media. - At the end of fast recovery or full recovery - If the database server is about to switch to the next free log and the log following the free log contains the oldest update For example, suppose four logical-log files have the status shown in the following list. The database server forces a full checkpoint when it switches to logical-log file 3 if the logical-log file 4 has the oldest update. The full checkpoint advances the oldest update to logical-log file 3. The database server performs a full checkpoint to prevent problems with fast recovery of old log records. logid Logical-Log File Status 1 U-B---- 2 U---C-- 3 F 4 U-B---L ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 22:08 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
vasilis vybegallo 1. Fuzzy checkpoints не имеют отношения к выполняемой сервером работе - они либо есть (все время), либо их нет. Вот тебе навскидку кусочек лога, где типы checkpoint чередуются сами по себе, без вмешательства админа. Чем пояснить ? 20:25:22 Fuzzy Checkpoint Completed: duration was 12 seconds, 5253 buffers not flushed. 20:25:22 Checkpoint loguniq 36, logpos 0x8985cc 20:25:22 Maximum server connections 2 20:28:48 Logical Log 36 Complete. 20:30:46 Fuzzy Checkpoint Completed: duration was 20 seconds, 2466 buffers not flushed. 20:30:46 Checkpoint loguniq 37, logpos 0xb7dcc 20:30:46 Maximum server connections 2 20:36:00 Checkpoint Completed: duration was 14 seconds. 20:36:00 Checkpoint loguniq 37, logpos 0x78d018 20:36:00 Maximum server connections 2 20:36:03 Checkpoint Completed: duration was 0 seconds. 20:36:03 Checkpoint loguniq 37, logpos 0x78e150 20:36:03 Maximum server connections 2 20:41:03 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed. 20:41:03 Checkpoint loguniq 37, logpos 0x790044 Непонятно, что вызвало чекпойнт в 20:36:03 - через 3 секунды после завершения предыдущего чекпойнта. Вы уверены, что никто не запускал onmode -c ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2005, 22:24 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
vybegallo vasilis vybegallo 1. Fuzzy checkpoints не имеют отношения к выполняемой сервером работе - они либо есть (все время), либо их нет. Вот тебе навскидку кусочек лога, где типы checkpoint чередуются сами по себе, без вмешательства админа. Чем пояснить ? 20:25:22 Fuzzy Checkpoint Completed: duration was 12 seconds, 5253 buffers not flushed. 20:25:22 Checkpoint loguniq 36, logpos 0x8985cc 20:25:22 Maximum server connections 2 20:28:48 Logical Log 36 Complete. 20:30:46 Fuzzy Checkpoint Completed: duration was 20 seconds, 2466 buffers not flushed. 20:30:46 Checkpoint loguniq 37, logpos 0xb7dcc 20:30:46 Maximum server connections 2 20:36:00 Checkpoint Completed: duration was 14 seconds. 20:36:00 Checkpoint loguniq 37, logpos 0x78d018 20:36:00 Maximum server connections 2 20:36:03 Checkpoint Completed: duration was 0 seconds. 20:36:03 Checkpoint loguniq 37, logpos 0x78e150 20:36:03 Maximum server connections 2 20:41:03 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed. 20:41:03 Checkpoint loguniq 37, logpos 0x790044 Непонятно, что вызвало чекпойнт в 20:36:03 - через 3 секунды после завершения предыдущего чекпойнта. Вы уверены, что никто не запускал onmode -c ? Уверен на 99,9%, но таких кусочков я могу привести много (см. еще один ниже, взятый за сууботу августа :)) с сервера девелоперов, где обычно работа очень интенсивная и разнообразная (но в субботу все таки народу почти не было), и админскими функциями никто не занимается. Сейчас на сервере, кстати, Fuzzy Checkpoint выключен по нескольким причинам. 12:11:25 Checkpoint Completed: duration was 0 seconds. 12:11:25 Checkpoint loguniq 42, logpos 0x4c018 12:11:25 Maximum server connections 0 12:21:52 Fuzzy Checkpoint Completed: duration was 4 seconds, 1 buffers not flushed. 12:21:53 Checkpoint loguniq 42, logpos 0x1c9044 12:21:53 Maximum server connections 1 12:26:52 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed. 12:26:52 Checkpoint loguniq 42, logpos 0x1ca044 12:26:52 Maximum server connections 1 12:27:50 Checkpoint Completed: duration was 0 seconds. 12:27:50 Checkpoint loguniq 42, logpos 0x1cb018 12:27:50 Maximum server connections 1 12:27:52 Checkpoint Completed: duration was 0 seconds. 12:27:52 Checkpoint loguniq 42, logpos 0x1cc150 12:27:53 Maximum server connections 1 12:33:02 Fuzzy Checkpoint Completed: duration was 10 seconds, 1 buffers not flushed. 12:33:03 Checkpoint loguniq 42, logpos 0x348044 12:33:03 Maximum server connections 1 12:34:00 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed. 12:34:00 Checkpoint loguniq 42, logpos 0x3492d4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 13:21 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
vybegalloRTFM ! See the last case. .... - If the database server is about to switch to the next free log and the log following the free log contains the oldest update For example, suppose four logical-log files have the status shown in the following list. The database server forces a full checkpoint when it switches to logical-log file 3 if the logical-log file 4 has the oldest update. The full checkpoint advances the oldest update to logical-log file 3. The database server performs a full checkpoint to prevent problems with fast recovery of old log records. logid Logical-Log File Status 1 U-B---- 2 U---C-- 3 F 4 U-B---L Это тоже вряд ли подходит. Боюсь, что есть еще неописанные случаи... Кстати, версия сервера 9.30.TC2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 13:27 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
vybegallo 5. Очевидно, либо этот параметр был прописан в конфиге, либо переменная выставлена. ПОсле рестарта новое значение стало актуальным и сервер перестал выполнять fuzzy checkpoints. Эта переменная NOFUZZYCKPT не была установлена и после окончания удаления (про которое говорится в первом посте) fuzzy checkpoints вновь появились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 14:11 |
|
||
|
Удаление записей и чекпоинты
|
|||
|---|---|---|---|
|
#18+
Возможно, что если все модицифированные страницы во время чекпойнта были сброшены на диск (потому что не было fuzzy операций) - то такой чекпойнт помечается как обычный. Это имеет смысл, поскольку обычный чекпойнт "более ценен" системе - с него начинаются некоторые отсчеты. Тогда в исходном примере, до перезагрузки, поскольку в буфере оставались фазированные страницы от предыдущих операций, чекпойнты были фаззи. ПОсле рестарта, поскольку все удаления были не фаззи, и другой работы на сервере не выполнялось - чекпойнты помечались как обычные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2005, 17:21 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=32908756&tid=1609104]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 395ms |

| 0 / 0 |
