Меня попросили внедрить метод для достижения лучшей производительности запросов, что очень ново для меня.
Метод:
SELECT tab1.col1
FROM tab1, tab2
WHERE tab1.col1 = tab2.col2
AND tab2.col3 = 'X'
AND tab1.col4 = 'Y';
В приведенном выше запросе
- Мне нужно создать две таблицы в качестве справочных таблиц для таблиц, использованных выше, скажем, tab3 для tab1 и tab4 для tab2.
- Вставить значения PK tab1 и tab2 соответственно в tab3 и tab4.
- Добавьте столбцы в tab3 и tab4, скажем 'condition1', и обновите их, указав значения PK для записей, извлеченных по вышеуказанному запросу.
- Используйте tab3 и tab4 в запросах спроверка для столбца 'condition1' НЕТ НЕДЕЙСТВИТЕЛЬНО.
- Триггер записи для обновления этого столбца на любом DML в исходных таблицах.
Это может показаться простым на первый взгляд, но еслите же таблицы используются в N запросах с разными предикатами, мне нужно добавить N количество столбцов в новых таблицах и соответствующие триггеры.
Я полагаю, этодублирование данныхи огромная нагрузка на базу данных.И это не будет способствовать повышению производительности.
Было бы здорово, если бы вы могли помочь мне выйти из дилеммы реализации этого.
Заранее спасибо, Savitha