Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / db file scattered read / 14 сообщений из 14, страница 1 из 1
14.05.2003, 09:19
    #32159129
Кандидат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Здравствуйте !

Помогите пожалуйста разобраться.

Запускается процесс вставки данных в 2 таблицы.

Сразу же по этой сессии событие "db file scattered read" начинает зашкаливать,
соответственно HitRate Buffer Cache падает до непозволительно безобразия 17%.

DB_FILE_MULTIBLOCK_READ_COUNT = 7

в чем моя ошибка настройки ?

З.Ы. Oracle 7.3.3
...
Рейтинг: 0 / 0
14.05.2003, 10:22
    #32159194
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
где-то в процедуре вставки данных есть селект, который полностью читает какую-то таблицу (Full Table Scan). Нужно искать его и разбираться.

Обычно этот параметр выставляют кратным четырем: 8, 12, 16, ...
...
Рейтинг: 0 / 0
14.05.2003, 10:23
    #32159199
Кандидат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Небольшое дополнение

В скрипте есть SELECT по таблице с количеством записей = 148910
селект по множеству полей по которым нет индекса, получается, что
делается FULL SCAN таблицы, но количество не такое уж и большое.
Почему так сильно напрягаются операции I/O ?

db_block_size = 8192
db_block_buffers = 30000
...
Рейтинг: 0 / 0
14.05.2003, 10:32
    #32159211
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
если select в соединении таблиц, то на каждую строку результирующего набора понадобится сделать одну операцию FTS
...
Рейтинг: 0 / 0
14.05.2003, 10:42
    #32159229
Кандидат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Select только по одно таблице
...
Рейтинг: 0 / 0
14.05.2003, 11:10
    #32159289
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
>Почему так сильно напрягаются операции I/O ?

Одна из возможных причин - когда-то таблица содержала большое количество записей, впоследствии удаленных. Соотвественно High water mark высокий. Full scan читает все блоки ниже HWM, независимо от кол-ва записей в них.
...
Рейтинг: 0 / 0
15.05.2003, 08:26
    #32160130
Кандидат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
А как это можно поймать ?
...
Рейтинг: 0 / 0
15.05.2003, 10:17
    #32160242
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Определить высокий HWM?
Собрать статистику по таблице (ANALYZE TABLE COMPUTE STATISTICS) и сделать выборку из DBA_TABLES по имени таблицы. Там можно посмотреть общее количество записей, средний размер записи, количество занятых блоков и количество выделенных, но не занятых записями блоков. То есть логика действий примерно такая - зная кол-во и средний размер записи, можно примерно вычислить сколько им нужно блоков. Сравнить с реальным значением в поле blocks. Если оно ненамного выше - нормально, если оно больше в разы - тот случай с высоким HWM и есть.
Примерно то же можно получить из пакеджа DBMS_SPACE (в документации довольно подробный пример имеется)

Ну и кстати - это только одна из возможных причин. Может там и не фул скан все портит...
...
Рейтинг: 0 / 0
15.05.2003, 11:17
    #32160355
Vladimir Demkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Господа,
прошу заметить, что даже исходя из перевода "db file scattered read" - это обозначает произвольное (разбросанное, разрозненное) чтение.
Т.е. ни к какому полному сканированию таблиц это отношения не имеет.
Не уверен (нужно проверить), но при массовой вставке записей я предполагаю это нормальная статистика. Oracle просто читает в кэш блоки в которые будет производится вставка и читает их по одному.
...
Рейтинг: 0 / 0
15.05.2003, 12:03
    #32160458
Roman_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Выдержка из документации:
----------------------------------------------------------------------------
db file scattered read
This event signifies that the user process is reading buffers into the SGA buffer cache and is waiting for a physical I/O call to return. A db file scattered read issues a scatter-read to read the data into multiple discontinuous memory locations. A scattered read is usually a multiblock read. It can occur for a fast full scan (of an index) in addition to a full table scan.

The db file scattered read wait event identifies that a full table scan is occurring. When performing a full table scan into the buffer cache, the blocks read are read into memory locations that are not physically adjacent to each other. Such reads are called scattered read calls, because the blocks are scattered throughout memory. This is why the corresponding wait event is called 'db file scattered read'. Multiblock (up to DB_FILE_MULTIBLOCK_READ_COUNT blocks) reads due to full table scans into the buffer cache show up as waits for 'db file scattered read'.
---------------------------------------------------------------------------

То есть таки имеет оно отношение к фуллсканам. Ну строго говоря, вполне может иметь...
...
Рейтинг: 0 / 0
15.05.2003, 12:15
    #32160477
killed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Володя,

scattered означает лишь, что блоки считанные в кэш-буффер, будут разбросаны по всему кэшу.
...
Рейтинг: 0 / 0
15.05.2003, 12:36
    #32160519
Vladimir Demkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
OOOPs: перевод как раз и ввел в заблуждение.
...
Рейтинг: 0 / 0
15.05.2003, 15:10
    #32160786
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
>scattered означает лишь, что блоки считанные в кэш-буффер, будут
>разбросаны по всему кэшу.

т.е ты хочешь сказать, при событии sequential read (которое происходит при индексном доступе к таблице) блоки, считанные в кеш-буфер будут распологаться там последовательно?

P.S. А это путаница со scattered и sequential чтениями - давно известный факт.
...
Рейтинг: 0 / 0
15.05.2003, 15:21
    #32160810
Кандидат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db file scattered read
Все оказалось намного тривиальнее чем казалось на самом деле.

Таблицы участвующие в процессе не врагментированы, НО
в третьем колене триггреов используется запрос по табличке
у которой не было ни одного индекса.
Построи индекс и все пошло влет.

Спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / db file scattered read / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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