|
|
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Здравствуйте ! Помогите пожалуйста разобраться. Запускается процесс вставки данных в 2 таблицы. Сразу же по этой сессии событие "db file scattered read" начинает зашкаливать, соответственно HitRate Buffer Cache падает до непозволительно безобразия 17%. DB_FILE_MULTIBLOCK_READ_COUNT = 7 в чем моя ошибка настройки ? З.Ы. Oracle 7.3.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 09:19 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
где-то в процедуре вставки данных есть селект, который полностью читает какую-то таблицу (Full Table Scan). Нужно искать его и разбираться. Обычно этот параметр выставляют кратным четырем: 8, 12, 16, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 10:22 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Небольшое дополнение В скрипте есть SELECT по таблице с количеством записей = 148910 селект по множеству полей по которым нет индекса, получается, что делается FULL SCAN таблицы, но количество не такое уж и большое. Почему так сильно напрягаются операции I/O ? db_block_size = 8192 db_block_buffers = 30000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 10:23 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
если select в соединении таблиц, то на каждую строку результирующего набора понадобится сделать одну операцию FTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 10:32 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Select только по одно таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 10:42 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
>Почему так сильно напрягаются операции I/O ? Одна из возможных причин - когда-то таблица содержала большое количество записей, впоследствии удаленных. Соотвественно High water mark высокий. Full scan читает все блоки ниже HWM, независимо от кол-ва записей в них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 11:10 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
А как это можно поймать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 08:26 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Определить высокий HWM? Собрать статистику по таблице (ANALYZE TABLE COMPUTE STATISTICS) и сделать выборку из DBA_TABLES по имени таблицы. Там можно посмотреть общее количество записей, средний размер записи, количество занятых блоков и количество выделенных, но не занятых записями блоков. То есть логика действий примерно такая - зная кол-во и средний размер записи, можно примерно вычислить сколько им нужно блоков. Сравнить с реальным значением в поле blocks. Если оно ненамного выше - нормально, если оно больше в разы - тот случай с высоким HWM и есть. Примерно то же можно получить из пакеджа DBMS_SPACE (в документации довольно подробный пример имеется) Ну и кстати - это только одна из возможных причин. Может там и не фул скан все портит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 10:17 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Господа, прошу заметить, что даже исходя из перевода "db file scattered read" - это обозначает произвольное (разбросанное, разрозненное) чтение. Т.е. ни к какому полному сканированию таблиц это отношения не имеет. Не уверен (нужно проверить), но при массовой вставке записей я предполагаю это нормальная статистика. Oracle просто читает в кэш блоки в которые будет производится вставка и читает их по одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 11:17 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Выдержка из документации: ---------------------------------------------------------------------------- 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'. --------------------------------------------------------------------------- То есть таки имеет оно отношение к фуллсканам. Ну строго говоря, вполне может иметь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 12:03 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Володя, scattered означает лишь, что блоки считанные в кэш-буффер, будут разбросаны по всему кэшу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 12:15 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
OOOPs: перевод как раз и ввел в заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 12:36 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
>scattered означает лишь, что блоки считанные в кэш-буффер, будут >разбросаны по всему кэшу. т.е ты хочешь сказать, при событии sequential read (которое происходит при индексном доступе к таблице) блоки, считанные в кеш-буфер будут распологаться там последовательно? P.S. А это путаница со scattered и sequential чтениями - давно известный факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 15:10 |
|
||
|
db file scattered read
|
|||
|---|---|---|---|
|
#18+
Все оказалось намного тривиальнее чем казалось на самом деле. Таблицы участвующие в процессе не врагментированы, НО в третьем колене триггреов используется запрос по табличке у которой не было ни одного индекса. Построи индекс и все пошло влет. Спасибо всем откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2003, 15:21 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32160519&tid=1990557]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 449ms |

| 0 / 0 |
