Hello, All! Продолжая, сугубо теоретические, эксперименты с большими базами, мучаю таблицу с 1млрд записей, джойня саму с собой
select o.* from objects o join objects o1 on o1.p_1=o.id_obj where o.id_obj<3 нидекс по p_1, есесно хуже, чем по ПК id_obj, и на таком запросе сервер сваливается, как я могу понять, в перебор всей o1? PLAN JOIN (O1 INDEX (OBJECTS_IDX2), O INDEX (PK_OBJECTS)) (хотя для where o.id_obj=3 все нормально, что в принципе тоженемного понятно) лечится это нашим излюбленным хинтом on o1.p_1=o.id_obj+0 получая PLAN JOIN (O INDEX (PK_OBJECTS), O1 INDEX (OBJECTS_IDX2)) А вопрос собственнов в чем - на что сервер тратит память, когда идет по первому(неоптимальному) плану? Ибо он кушает всю свободную память на сервере(в моем случае 800мб), после чего вся машина впадает в кому из-за забивания дисковой подсистемы работой со свопом. Смотрел я правда значения в TaskManager. Да, запрос этот ничего не возвращает. FB2 rc2 база 160гб Page size 4096 ODS version 11.0 -- -=Я привык быть пунктуальным, хотя это часто обрекает меня на одиночество=- With best regards, Nikolay Ponomarenko --~--~---------~--~----~------------~-------~--~----~ -~----------~----~----~----~------~----~------~--~---

