[oracle DB] догадаться, почему тупит таблица
может фрагментировалось?
А ты случайно не помнишь названия для двух настроек таблицы:
- задание поля, в порядке по которому будут лежать записи на диске (для ускорения запросов ORDER BY по этому полю и BETWEEN)
- задания промежутков в этом порядке (чтобы не переписывать пол таблицы при инсёрте в середину)
SELECT ROUNDBLOCKS*8)/1024) AS "Total Size, Mb",
ROUND(NUM_ROWS*AVG_ROW_LEN/1024/1024) AS "Real Size, Mb"
FROM SYS.ALL_TABLES
WHERE TABLE_NAME='MY_TABLE';
Total Size, Mb Real Size, Mb
1275 237
- задание поля, в порядке по которому будут лежать записи на диске (для ускорения запросов ORDER BY по этому полю и BETWEEN)Это тебе нужны Index-organized Table или Index Cluster
alter table my_table move;
(это сожмёт таблицу)
и повтори свой запрос, выдающий
Total Size, Mb и Real Size, Mb
Проверь, не insert-ятся ли в нее данные с хинтом /*+ append*/. Если да, то убери.
Оставить комментарий
kill-still
есть простой запрос типаSELECT param1, param3, param4 FROM my_table
присасываюсь к БД через JDBC, пытаюсь получить данные.
И эта таблица какая-то особенная - из неё данные туго очень идут (всего лишь 1.9к в секунду, при том, что по идее должны быть десятки тысяч)
DDL таблицы:
чем она такая особенная?