Size: a a a

2020 October 12

У

Уруруборос Иванович... in Oracle RU
Дмитрий Лукьянов
Я не оч вкуриваю насчёт обычного индекса. Вроде, индекс используется лишь при like 'some_text%', но не при like '%some_text%'
Ну у тебя будет сканится не вся таблица, а одно поле
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Dmitry Comanda
Если из таблицы читается только одно поле, то достаточно читать индекс, Oracle не полезет в саму таблицу
Нужен тест-кейс...
источник

У

Уруруборос Иванович... in Oracle RU
Дмитрий Лукьянов
Нужен тест-кейс...
Ну залепи на терабайтную таблицу на текстовый столбец индекс и посмотри план
источник

A

Al in Oracle RU
Дмитрий Лукьянов
Ты не в тему, если что. Хотя понимаю, что тебе лишь бы чего ляпнуть.
Очень в тему. Просто ты не понимаешь что иногда нужно использовать молоток что бы забивать гвозди. А не пытаться епашить микроскопом все подряд
источник

DC

Dmitry Comanda in Oracle RU
У индекса отдельный сегмент данных на диске, вот он и будет читаться через мультиблочное чтение (fast full scan), которое гораздо шустрее обычного одноблочного
источник

DC

Dmitry Comanda in Oracle RU
Dmitry Comanda
У индекса отдельный сегмент данных на диске, вот он и будет читаться через мультиблочное чтение (fast full scan), которое гораздо шустрее обычного одноблочного
Если объём RAM позволяет, можно ещё настроить KEEP pool и индексу указать при создании storage (buffer_pool keep), чтобы он после первого чтения висел в памяти
источник

DC

Dmitry Comanda in Oracle RU
Дмитрий Лукьянов
Нужен тест-кейс...
Если есть тестовая база с более-менее близким к боевой объёмом - сравни хотя бы logical reads для чтения одного поля через like '%%' без индекса и с ним
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Сча пробую замутить тест..
источник

DC

Dmitry Comanda in Oracle RU
При условии, что запрос достаточно простой и CBO сможет заюзать index fast full scan
источник

DC

Dmitry Comanda in Oracle RU
Смотри что будет в плане выполнения + разницу в logical reads, на крайняк - trace 10046
источник

АЛ

Аггей Лоскутников... in Oracle RU
Может проще внешний поисковый движок приколхозить?
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Смотрю. Там вообще шикарный код...

SELECT * FROM (some_view_name) t_src WHERE (UPPER(t_src.description) LIKE UPPER('%некоторый текст%'))  OR (UPPER(t_src.description) LIKE UPPER('%другой текст%'));


При этом description - это составное поле во view some_view_name:

some_code || ' - ' || name AS description,


Мне кажется, они безнадёжны...
источник

SG

Sergey Gr in Oracle RU
Inmemory с  columnar compression?
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Я построил индекс:

create index i_test_01 on some_base_table (UPPER(some_code || ' - ' || name)) online compute statistics;


Но оптимизатор его не юзает
источник

У

Уруруборос Иванович... in Oracle RU
Дмитрий Лукьянов
Смотрю. Там вообще шикарный код...

SELECT * FROM (some_view_name) t_src WHERE (UPPER(t_src.description) LIKE UPPER('%некоторый текст%'))  OR (UPPER(t_src.description) LIKE UPPER('%другой текст%'));


При этом description - это составное поле во view some_view_name:

some_code || ' - ' || name AS description,


Мне кажется, они безнадёжны...
Ну тогда функциональный индекс надо на аппер
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Уруруборос Иванович
Ну тогда функциональный индекс надо на аппер
Выше 👆🏻
источник

N

Nik in Oracle RU
Дмитрий Лукьянов
Смотрю. Там вообще шикарный код...

SELECT * FROM (some_view_name) t_src WHERE (UPPER(t_src.description) LIKE UPPER('%некоторый текст%'))  OR (UPPER(t_src.description) LIKE UPPER('%другой текст%'));


При этом description - это составное поле во view some_view_name:

some_code || ' - ' || name AS description,


Мне кажется, они безнадёжны...
может их уволить?
источник

У

Уруруборос Иванович... in Oracle RU
А блин. Дескрипшен в запросе лепится?
источник

ДЛ

Дмитрий Лукьянов... in Oracle RU
Nik
может их уволить?
Кабы я мог... 🤷‍♂️
источник

A

Al in Oracle RU
еще и кириллица
источник