To jedna z ciekawszych nowych funkcjonalności serwera Oracle Database 12c. Pomaga zoptymalizować mechanizmy składowania danych, którymi użytkownicy od pewnego czasu przestali się aktywnie interesować. Aktualnie dostępne są dwa rozwiązania: (1) kompresja (rekompresja) danych „niedotykanych” przez użytkowników, (2) przenoszenie (tzw. tiering) do „tańszej” przestrzeni tabel tych partycji, które przestają się mieścić w aktualnej przestrzeni tabel, a którymi użytkownicy najmniej się interesują.
Aby skorzystać z Automatic Data Optimization należy zdefiniować tzw. politykę ILM, np.:
alter table zamowienia ilm add policy
column store compress for query high
segment after 30 days of no modification
gdzie „column store compress for query high” wskazuje algorytm kompresji, „segment” wskazuje poziom kompresji, a „after 30 days of no modification” wskazuje warunek inicjujący kompresję. W tym przypadku po 30 dniach niemodyfikowania rekordów tabeli „zamowienia” przez użytkowników, zawartość tej tabeli zostanie automatycznie skompresowana metodą HCC (znaną z Exadaty). Kompresja nastąpi w czasie nocnego okna serwisowego, a o jej pomyślnym przebiegu przekonamy się następnego dnia zaglądając np. do DBA_TABLES.
Przykład innej polityki ILM, powodującej przeniesienie partycji do „tańszej” przestrzeni tabel:
alter table zamowienia
modify partition p34
ilm add policy tier to low_cost_tbsp
przeniesienie partycji nastąpi automatycznie w chwili, gdy wolne miejsce w przestrzeni tabel, w której aktualnie sie ona znajduje, spadnie poniżej TBS_PERCENT_FREE (25%, ustawiane za pomocą dbms_ilm_admin.customize_ilm(), obserwowane w dba_ilmparameters).
Należy dodać, że warunkiem poprawnego funkcjonowania polityk ILM jest włączona funkcja Heat Map (alter system set heat_map=on), a ta w 12.1 nie działa w konfiguracji „kontenerowej” (no comments…).